Wie kann das Anforderungszeitlimit in IIS erhöht werden?

150

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

Dotnet Rocks
quelle

Antworten:

182

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).

Jeff Doolittle
quelle
8
Kann dies über die IIS 7 Manager-Benutzeroberfläche festgelegt werden?
Triynko
13
Das Zeitlimit wird in Sekunden angegeben, der Standardwert beträgt 110 Sekunden. Hinweis: Dieses Zeitlimit gilt nur, wenn das Debug-Attribut im <compilation> -Element auf false gesetzt ist!
Jowen
1
@Jowen: Du rockst! Ich hatte das Debugging vor Tagen auf falsch geändert und es nicht mit all den Timeout-Fehlern verknüpft, die ich erhalten hatte. Jetzt weiß ich.
Doug S
Beachten Sie, dass der Maximalwert von executeTimeout auch der Maximalwert von TimeSpan (10675199.02: 48: 05.4775807) ist, der ... mehr ist, als Sie benötigen
Antoine Pelletier
72

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 .

Greg Shackles
quelle
6
Entspricht dies dem Anforderungszeitlimit? Ich versuche, Daten aus einem XML-Dokument und dem erforderlichen Zeitlimit zu migrieren. Wenn ich also das Verbindungszeitlimit erhöhe, wird dies behoben.
Dotnet Rocks
12
Ich denke nicht, dass dies korrekt ist. Wenn 'HTTP Keep-Alive' aktiviert ist, gilt diese Zeiteinstellung für diese Funktion. Dies bedeutet, wie lange die Verbindung am Leben bleibt. Ich glaube nicht, dass dies mit dem 'Anforderungszeitlimit' zusammenhängt (wie lange ich warte) zur Ausführung einer Seite) ..
visuell
1
Ich denke, dies ist die richtige Antwort in bestimmten Situationen, z. B. beim Hochladen einer großen Datei. Während des Wartens auf den Upload, die
David Hammond
45

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.

Rae Lee
quelle
3
Sie haben die +1 mit den Informationen über den Ort verdient
Gonza Oviedo
Sehr hilfreich. Vielen Dank!
jim1427
29

In IIS> = 7, eine <webLimits>hat Abschnitt ersetzt ConnectionTimeout, HeaderWaitTimeout, MaxGlobalBandwidth, und MinFileBytesPerSecIIS 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.

AndrewPK
quelle
5
Dies ersetzt ConnectionTimeoutnicht httpRuntime executionTimeout.
user2864740
14

Im Folgenden finden Sie Schritte zur Behebung Ihres Problems.

  1. Öffnen Sie Ihren IIS
  2. Gehen Sie zur Option " Sites ".
  3. Klicken Sie mit der rechten Maustaste.
  4. Öffnen Sie dann die Eigenschaft " Website verwalten ".
  5. Klicken Sie dann auf " Erweiterte Einstellungen ".
  6. Erweitern Sie den Abschnitt " Verbindungslimits ". Hier können Sie Ihr " Verbindungszeitlimit " festlegen.

Geben Sie hier die Bildbeschreibung ein

Anjan Kant
quelle
Link für weitere Informationen: docs.microsoft.com/en-us/previous-versions/dotnet/…
JPatel
11

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:

  • Gehen Sie zu Serverfarmen -> {Servername} -> Proxy
  • Ändern Sie den Wert in der Time-out - Eingabefeld
  • Klicken Sie auf Übernehmen (obere rechte Ecke).

oder Sie können es in der cofig-Datei ändern:

  • Öffnen Sie % WinDir% \ System32 \ Inetsrv \ Config \ applicationHost.config
  • Passen Sie die Server- WebFarm- Konfiguration wie folgt an

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 ).

Paweł Grześ
quelle
2
Bitte beachten Sie, dass Sie nur Antworten veröffentlichen sollten, die in direktem Zusammenhang mit der gestellten Frage stehen. Da es sich bei dieser Frage ausschließlich um IIS handelt, ist eine Antwort mit Informationen zu Tomcat wirklich nicht relevant.
Andrew Barber
9
In diesem Fall halte ich die Antwort für relevant, da es sich bei dem hier angegebenen Anwendungsfall (Verwenden des IIS-Anwendungsanforderungsroutings zum Weiterleiten an einen anderen Server) um IIS handelt. Die Einstellung hier kann auch in IIS Manager konfiguriert werden. FWIW, diese Antwort hat mir geholfen, Fehler zu beheben, welches Anforderungszeitlimit ich ändern sollte. (Da es in IIS Manager viele Timeout-Einstellungen gibt)
Jensen Ching
3

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" 
Suraj Dixit
quelle