Como aumentar o tempo limite da solicitação no IIS?

150

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

Dotnet Rocks
fonte

Respostas:

182

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

Jeff Doolittle
fonte
8
Isso pode ser definido na GUI do Gerenciador do IIS 7?
Triynko 9/10/12
13
O tempo limite é especificado em segundos, o padrão é 110 segundos. Nota: Esse tempo limite se aplica somente se o atributo debug no elemento <compilation> estiver definido como false!
Jowen
1
@Jowen: Você é demais! Eu havia mudado a depuração anteriormente para falsa dias atrás e não a associei a todos os erros de tempo limite que estava recebendo. Agora eu sei.
Doug S
Note-se que o valor máximo de executionTimeout é também o valor máximo de TimeSpan (10.675.199,02: 48: 05.4775807) que é ... mais, então você precisa
Antoine Pelletier
72

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 .

Greg Shackles
fonte
6
É o mesmo que o tempo limite da solicitação. Estou tentando migrar dados de um documento xml e o tempo limite da reuqest. Portanto, se eu aumentar o tempo limite da conexão, isso será resolvido.
Dotnet Rochas
12
Eu não acho que isso esteja correto, se 'HTTP Keep-Alive' estiver ativado, então essa configuração de tempo se aplicará a ela, ou seja, quanto tempo a conexão permanecerá ativa, não acho que isso esteja relacionado ao 'pedido de tempo limite' (quanto tempo o iis aguarda) para execução de uma página) ..
visual
1
Eu acho que essa é a resposta certa em determinadas situações, como carregar um arquivo grande. Enquanto aguarda o upload, o
David Hammond
45

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.

Rae Lee
fonte
3
Você ganhou o +1 com as informações da localização
Gonza Oviedo 30/03
Muito útil. Obrigado!
jim1427 20/01
29

No IIS> = 7, uma <webLimits>seção substituiu ConnectionTimeout, HeaderWaitTimeout, MaxGlobalBandwidth, e MinFileBytesPerSecIIS 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.

AndrewPK
fonte
5
Isso substitui ConnectionTimeout, não o httpRuntime executionTimeout.
precisa saber é o seguinte
15

Abaixo estão as etapas para corrigir seu problema.

  1. Abra seu IIS
  2. Vá para a opção " Sites ".
  3. Clique com o botão direito do mouse.
  4. Em seguida, abra a propriedade " Gerenciar site ".
  5. Em seguida, clique em " Configurações avançadas ".
  6. Expanda a seção " Limites de conexão ", aqui você pode definir o " tempo limite da conexão "

insira a descrição da imagem aqui

Anjan Kant
fonte
link para obter mais informações: docs.microsoft.com/en-us/previous-versions/dotnet/…
JPatel
11

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:

  • vá para Farms de servidores -> {Nome do servidor} -> Proxy
  • altere o valor na caixa de entrada Tempo limite
  • clique em Aplicar (canto superior direito)

ou você pode alterá-lo no arquivo cofig:

  • abra % WinDir% \ System32 \ Inetsrv \ Config \ applicationHost.config
  • ajuste a configuração do servidor webFarm para ser semelhante à seguinte

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 )

Paweł Grześ
fonte
2
Observe que você deve postar apenas respostas diretamente relacionadas à pergunta. Como essa pergunta é puramente sobre o IIS, uma resposta com informações sobre o Tomcat realmente não é relevante.
Andrew Barber
9
Nesse caso, acho que a resposta é relevante, pois o caso de uso especificado aqui (usando o IIS Application Request Routing para rotear para outro servidor) é sobre o IIS. A configuração aqui também é configurável no Gerenciador do IIS. FWIW, esta resposta me ajudou a solucionar exatamente o tempo limite da solicitação que devo alterar. (Uma vez que existem muitas configurações de tempo limite em IIS Manager)
Jensen Ching
3

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