Wenn Sie die Ausführungszeit eines ASP.NET-Skripts verlängern möchten, erhöhen Sie den Server.ScriptTimeout
Wert. Der Standardwert beträgt 90 Sekunden für .NET 1.x und 110 Sekunden für .NET 2.0 und höher.
Beispielsweise:
// Increase script timeout for current page to five minutes
Server.ScriptTimeout = 300;
Dieser Wert kann auch in Ihrer web.config
Datei im httpRuntime
Konfigurationselement konfiguriert werden:
<!-- Increase script timeout to five minutes -->
<httpRuntime executionTimeout="300"
... other configuration attributes ...
/>
Bitte beachten Sie gemäß der MSDN-Dokumentation :
"Dieses Zeitlimit gilt nur, wenn das Debug-Attribut im Kompilierungselement False ist. Wenn das Debug-Attribut also True ist, müssen Sie dieses Attribut nicht auf einen großen Wert festlegen, um ein Herunterfahren der Anwendung während des Debuggens zu vermeiden. ""
Wenn Sie dies bereits getan haben, aber feststellen, dass Ihre Sitzung abläuft, erhöhen Sie den ASP.NET- HttpSessionState.Timeout
Wert:
Beispielsweise:
// Increase session timeout to thirty minutes
Session.Timeout = 30;
Dieser Wert kann auch in Ihrer web.config
Datei im sessionState
Konfigurationselement konfiguriert werden:
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
timeout="30" />
</system.web>
</configuration>
Wenn die Ausführung Ihres Skripts einige Minuten dauert und viele Benutzer gleichzeitig arbeiten, sollten Sie die Seite in eine asynchrone Seite ändern . Dies erhöht die Skalierbarkeit Ihrer Anwendung.
Die andere Alternative, wenn Sie Administratorzugriff auf den Server haben, besteht darin, diesen lang laufenden Vorgang als Kandidaten für die Implementierung als geplante Aufgabe oder als Windows-Dienst zu betrachten.
Tolle und umfassende Antwort von @Kev!
Da ich in einer WebForms-Anwendung nur auf einer Administrationsseite lange verarbeitet habe, habe ich die Codeoption verwendet. Um eine vorübergehende schnelle Lösung für die Produktion zu ermöglichen, habe ich die Konfigurationsversion in einem
<location>
Tag in web.config verwendet. Auf diese Weise bekam meine Administrator- / Verarbeitungsseite genügend Zeit, während Seiten für Endbenutzer und dergleichen ihr altes Timeout-Verhalten beibehielten.Unten habe ich die Konfiguration für Googler angegeben, die dieselbe schnelle Lösung benötigen. Sie sollten natürlich andere Werte als meine ‚4 Stunden‘ Beispiel verwenden, aber DO zur Kenntnis , dass die Sitzung
timeOut
in Minuten, während die AnfrageexecutionTimeout
in Sekunden!Und - da es 2015 ist bereits - für ein nicht quickfix sollten Sie .Net 4.5 die Nutzung async / await jetzt , wenn überhaupt möglich, statt dem Asynchron - Seite .NET 2.0 , den Stand der Technik war , als KEV 2010 beantwortet :).
quelle
Ich poste dies hier, weil ich ungefähr 3 und 4 Stunden damit verbracht habe und nur Antworten wie die oben genannten gefunden habe, die sagen, füge das hinzu
executionTime
, aber es löst das Problem in diesem Fall nicht Sie verwenden ASP .NET Core . Dafür würde das funktionieren:Fügen Sie in der Datei web.config das
requestTimeout
Attribut amaspNetCore
Knoten hinzu.In diesem Beispiel stelle ich den Wert auf 10 Minuten ein.
Referenz: https://docs.microsoft.com/en-us/aspnet/core/hosting/aspnet-core-module#configuring-the-asp-net-core-module
quelle
OutOfProcess
Hosting-Modell. DennInProcess
es gibt keine Timeout-Einstellung. IIS wartet weiter auf den Abschluss des Prozesses. WeitereEntfernen Sie das
~
Zeichen an der richtigen Stellewird
quelle