Wie kann das Anforderungszeitlimit in IIS 7.0 erhöht werden? Das Gleiche geschieht auf der Registerkarte "Anwendung" in den ASP-Konfigurationseinstellungen in IIS 6.0. Ich kann den Abschnitt zur asp.net-Konfiguration in IIS 7.0 nicht finden
Wie kann das Anforderungszeitlimit in IIS 7.0 erhöht werden? Das Gleiche geschieht auf der Registerkarte "Anwendung" in den ASP-Konfigurationseinstellungen in IIS 6.0. Ich kann den Abschnitt zur asp.net-Konfiguration in IIS 7.0 nicht finden
Antworten:
Fügen Sie dies Ihrer Webkonfiguration hinzu
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx
Optionales TimeSpan-Attribut.
Gibt die maximale Anzahl von Sekunden an, die eine Anforderung ausgeführt werden darf, bevor sie von ASP.NET automatisch heruntergefahren wird.
Dieses Zeitlimit gilt nur, wenn das Debug-Attribut im Kompilierungselement False ist. Setzen Sie dieses Zeitlimit nicht auf einen großen Wert, um zu verhindern, dass die Anwendung während des Debuggens heruntergefahren wird.
Der Standardwert ist "00:01:50" (110 Sekunden).
Im IIS - Manager, klicken Sie rechts auf der Seite und gehen Sie auf Web verwalten Website -> Erweiterte Einstellungen . Unter Verbindungslimits Option, sollten Sie sehen , Verbindungszeit-out .
Um das Anforderungszeitlimit zu erhöhen, fügen Sie dies zu web.config hinzu
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
und für eine bestimmte Seite fügen Sie dies hinzu
<location path="somefile.aspx">
<system.web>
<httpRuntime executionTimeout="180"/>
</system.web>
</location>
Der Standardwert beträgt 90 Sekunden für .NET 1.x.
Der Standardwert von 110 Sekunden für .NET 2.0 und höher.
In IIS> = 7, eine <webLimits>
hat Abschnitt ersetzt ConnectionTimeout
, HeaderWaitTimeout
, MaxGlobalBandwidth
, und MinFileBytesPerSec
IIS 6 - Metabasis - Einstellungen.
Beispielkonfiguration:
<configuration>
<system.applicationHost>
<webLimits connectionTimeout="00:01:00"
dynamicIdleThreshold="150"
headerWaitTimeout="00:00:30"
minBytesPerSecond="500"
/>
</system.applicationHost>
</configuration>
Als Referenz: Weitere Informationen zu diesen Einstellungen in IIS finden Sie hier . Außerdem konnte ich diesen Abschnitt nicht über den "Konfigurationseditor" des IIS-Managers zur web.config hinzufügen, obwohl er angezeigt wurde, nachdem ich ihn hinzugefügt und die Konfiguration durchsucht hatte.
ConnectionTimeout
nicht httpRuntime executionTimeout
.
Im Folgenden finden Sie Schritte zur Behebung Ihres Problems.
Ich weiß, dass es sich bei der Frage um ASP handelte, aber vielleicht findet jemand diese Antwort hilfreich.
Wenn Sie einen Server hinter IIS 7.5 haben (z. B. Tomcat). In meinem Fall habe ich eine Serverfarm mit konfiguriertem Tomcat-Server. In diesem Fall können Sie das Zeitlimit mit dem IIS-Manager ändern:
oder Sie können es in der cofig-Datei ändern:
Beispiel:
<webFarm name="${SERVER_NAME}" enabled="true">
<server address="${SERVER_ADDRESS}" enabled="true">
<applicationRequestRouting httpPort="${SERVER_PORT}" />
</server>
<applicationRequestRouting>
<protocol timeout="${TIME}" />
</applicationRequestRouting>
</webFarm>
Das $ {TIME} hat das Format HH: mm: ss (wenn Sie es also auf 90 Sekunden einstellen möchten, geben Sie es dort 00:01:30 ein).
Bei Tomcat (und wahrscheinlich anderen Servlet-Containern) müssen Sie daran denken, das Zeitlimit in % TOMCAT_DIR% \ conf \ server.xml zu ändern (suchen Sie einfach im Connector- Tag nach dem Attribut connectionTimeout und denken Sie daran, dass es in Millisekunden angegeben ist ).
Verwenden Sie den folgenden Power Shell-Befehl, um das Ausführungszeitlimit zu ändern (Request Timeout).
Bitte beachten Sie, dass ich dies für die Standardwebsite angegeben habe. Bevor Sie diese verwenden, ändern Sie bitte die Website und versuchen Sie dann, diese zu verwenden.
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40"
Oder Sie können den folgenden C # -Code verwenden, um dasselbe zu tun
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection httpRuntimeSection = config.GetSection("system.web/httpRuntime");
httpRuntimeSection["executionTimeout"] = TimeSpan.Parse("00:01:40");
serverManager.CommitChanges();
}
}
}
Oder Sie können das JavaScript verwenden, um dies zu tun.
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var httpRuntimeSection = adminManager.GetAdminSection("system.web/httpRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpRuntimeSection.Properties.Item("executionTimeout").Value = "00:01:40";
adminManager.CommitChanges();
Sie können auch die AppCmd-Befehle verwenden.
appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40"