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 MinFileBytesPerSecIIS 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"