Como aumentar o tempo limite da solicitação no IIS 7.0? O mesmo é feito na guia Aplicativo nas definições de configuração do ASP no IIS 6.0. Não consigo encontrar a seção de configuração do asp.net no IIS 7.0
Como aumentar o tempo limite da solicitação no IIS 7.0? O mesmo é feito na guia Aplicativo nas definições de configuração do ASP no IIS 6.0. Não consigo encontrar a seção de configuração do asp.net no IIS 7.0
Respostas:
Adicione isso ao seu Web Config
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx
Atributo TimeSpan opcional.
Especifica o número máximo de segundos que uma solicitação pode executar antes de ser desligada automaticamente pelo ASP.NET.
Esse tempo limite se aplica somente se o atributo debug no elemento de compilação for False. Para ajudar a impedir o desligamento do aplicativo enquanto você estiver depurando, não defina esse tempo limite para um valor grande.
O padrão é "00:01:50" (110 segundos).
No Gerenciador do IIS, clique com o botão direito do mouse no site e vá para Gerenciar site -> Configurações avançadas . Na opção Limites de conexão , você verá o Tempo limite da conexão .
Para aumentar o tempo limite da solicitação, adicione-o ao web.config
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
e para uma página específica, adicione este
<location path="somefile.aspx">
<system.web>
<httpRuntime executionTimeout="180"/>
</system.web>
</location>
O padrão é 90 segundos para o .NET 1.x.
Os 110 segundos padrão para o .NET 2.0 e posterior.
No IIS> = 7, uma <webLimits>
seção substituiu ConnectionTimeout
, HeaderWaitTimeout
, MaxGlobalBandwidth
, e MinFileBytesPerSec
IIS 6 configurações de metabase.
Exemplo de configuração:
<configuration>
<system.applicationHost>
<webLimits connectionTimeout="00:01:00"
dynamicIdleThreshold="150"
headerWaitTimeout="00:00:30"
minBytesPerSecond="500"
/>
</system.applicationHost>
</configuration>
Para referência: mais informações sobre essas configurações no IIS podem ser encontradas aqui . Além disso, não consegui adicionar esta seção ao web.config por meio do "editor de configuração" do gerenciador do IIS, mas ele apareceu depois que o adicionei e procurei na configuração.
ConnectionTimeout
, não o httpRuntime executionTimeout
.
Abaixo estão as etapas para corrigir seu problema.
Eu sei que a pergunta era sobre ASP, mas talvez alguém ache esta resposta útil.
Se você possui um servidor atrás do IIS 7.5 (por exemplo, Tomcat). No meu caso, tenho um farm de servidores com o servidor Tomcat configurado. Nesse caso, você pode alterar o tempo limite usando o Gerenciador do IIS:
ou você pode alterá-lo no arquivo cofig:
Exemplo:
<webFarm name="${SERVER_NAME}" enabled="true">
<server address="${SERVER_ADDRESS}" enabled="true">
<applicationRequestRouting httpPort="${SERVER_PORT}" />
</server>
<applicationRequestRouting>
<protocol timeout="${TIME}" />
</applicationRequestRouting>
</webFarm>
O $ {TIME} está no formato HH: mm: ss (por isso, se você quiser defini-lo para 90 segundos, coloque lá 00:01:30)
No caso do Tomcat (e provavelmente de outros contêineres de servlets), lembre-se de alterar o tempo limite no % TOMCAT_DIR% \ conf \ server.xml (basta procurar o atributo connectionTimeout na tag Connector e lembrar que ele está especificado em milissegundos )
Use o comando Power shell abaixo para alterar o tempo limite de execução (Tempo limite da solicitação)
Observe que eu forneci isso para o site padrão. Antes de usá-los, altere o site e tente usá-lo.
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40"
Ou, você pode usar o código C # abaixo para fazer a mesma coisa
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();
}
}
}
Ou você pode usar o JavaScript para fazer isso.
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();
Ou você pode usar os comandos do AppCmd.
appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40"