Jak zwiększyć limit czasu żądania w usługach IIS 7.0? To samo można zrobić na karcie aplikacji w ustawieniach konfiguracji ASP w usługach IIS 6.0. Nie mogę znaleźć sekcji konfiguracji asp.net w usługach IIS 7.0
Jak zwiększyć limit czasu żądania w usługach IIS 7.0? To samo można zrobić na karcie aplikacji w ustawieniach konfiguracji ASP w usługach IIS 6.0. Nie mogę znaleźć sekcji konfiguracji asp.net w usługach IIS 7.0
Odpowiedzi:
Dodaj to do swojej Web Config
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx
Opcjonalny atrybut TimeSpan.
Określa maksymalną liczbę sekund, przez które żądanie może zostać wykonane, zanim zostanie automatycznie zamknięte przez ASP.NET.
Ten limit czasu ma zastosowanie tylko wtedy, gdy atrybut debug w elemencie kompilacji ma wartość False. Aby zapobiec zamykaniu aplikacji podczas debugowania, nie ustawiaj tego limitu czasu na dużą wartość.
Wartość domyślna to „00:01:50” (110 sekund).
W Menedżerze IIS kliknij witrynę prawym przyciskiem myszy i przejdź do Zarządzaj witryną sieci Web -> Ustawienia zaawansowane . W opcji Limity połączeń powinieneś zobaczyć Limit czasu połączenia .
Aby zwiększyć limit czasu żądania, dodaj to do web.config
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
a dla określonej strony dodaj to
<location path="somefile.aspx">
<system.web>
<httpRuntime executionTimeout="180"/>
</system.web>
</location>
Wartość domyślna to 90 sekund dla .NET 1.x.
Domyślne 110 sekund dla .NET 2.0 i nowszych.
W IIS> = 7, <webLimits>
odcinek został zastąpiony ConnectionTimeout
, HeaderWaitTimeout
, MaxGlobalBandwidth
, i MinFileBytesPerSec
IIS 6 ustawień metabazy.
Przykładowa konfiguracja:
<configuration>
<system.applicationHost>
<webLimits connectionTimeout="00:01:00"
dynamicIdleThreshold="150"
headerWaitTimeout="00:00:30"
minBytesPerSecond="500"
/>
</system.applicationHost>
</configuration>
Dla odniesienia: więcej informacji dotyczących tych ustawień w usługach IIS można znaleźć tutaj . Nie udało mi się również dodać tej sekcji do pliku web.config za pośrednictwem „edytora konfiguracji” menedżera IIS, chociaż pojawił się po dodaniu i przeszukaniu konfiguracji.
ConnectionTimeout
, a nie httpRuntime executionTimeout
.
Poniżej przedstawiono kroki umożliwiające rozwiązanie problemu.
Wiem, że pytanie dotyczyło ASP, ale może ktoś uzna tę odpowiedź za pomocną.
Jeśli masz serwer za usługami IIS 7.5 (np. Tomcat). W moim przypadku mam farmę serwerów ze skonfigurowanym serwerem Tomcat. W takim przypadku możesz zmienić limit czasu za pomocą Menedżera IIS:
lub możesz to zmienić w pliku cofig:
Przykład:
<webFarm name="${SERVER_NAME}" enabled="true">
<server address="${SERVER_ADDRESS}" enabled="true">
<applicationRequestRouting httpPort="${SERVER_PORT}" />
</server>
<applicationRequestRouting>
<protocol timeout="${TIME}" />
</applicationRequestRouting>
</webFarm>
$ {Time} jest w hh: mm: ss Format (więc jeśli chcesz, aby ustawić go na 90 sekund, a następnie umieścić tam 00:01:30)
W przypadku Tomcata (i prawdopodobnie innych kontenerów serwletów) musisz pamiętać o zmianie limitu czasu w % TOMCAT_DIR% \ conf \ server.xml (po prostu wyszukaj atrybut connectionTimeout w znaczniku Connector i pamiętaj, że jest on określony w milisekundach )
Użyj poniższego polecenia Power shell, aby zmienić limit czasu wykonania (limit czasu żądania)
Zwróć uwagę, że podałem to jako domyślną witrynę internetową, przed ich użyciem zmień witrynę, a następnie spróbuj z niej skorzystać.
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40"
Lub możesz użyć poniższego kodu C #, aby zrobić to samo
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();
}
}
}
Możesz też użyć JavaScript, aby to zrobić.
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();
Lub możesz użyć poleceń AppCmd.
appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40"