¿Cómo aumentar el tiempo de espera de solicitud en IIS?


150

¿Cómo aumentar el tiempo de espera de la solicitud en IIS 7.0? Lo mismo se hace en la pestaña de la aplicación en los ajustes de configuración ASP en IIS 6.0. No puedo encontrar la sección de configuración asp.net en IIS 7.0

Respuestas:


182

Agregue esto a su configuración web

<system.web>
    <httpRuntime executionTimeout="180" />
</system.web>

https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx

Atributo opcional de TimeSpan.

Especifica el número máximo de segundos que una solicitud puede ejecutar antes de que ASP.NET la cierre automáticamente.

Este tiempo de espera se aplica solo si el atributo de depuración en el elemento de compilación es False. Para ayudar a evitar el cierre de la aplicación mientras está depurando, no establezca este tiempo de espera en un valor grande.

El valor predeterminado es "00:01:50" (110 segundos).


8
¿Se puede configurar esto desde la GUI de IIS 7 Manager?
Triynko

13
El tiempo de espera se especifica en segundos, el valor predeterminado es 110 segundos. Nota: ¡Este tiempo de espera se aplica solo si el atributo de depuración en el elemento <compilation> está establecido en falso!
Jowen

1
@Jowen: ¡Eres genial! Anteriormente había cambiado la depuración a falsa días atrás y no la asociaba con todos los errores de tiempo de espera que había estado recibiendo. Ahora sé.
Doug S

Tenga en cuenta que el valor máximo de executeTimeout es también el valor máximo de TimeSpan (10675199.02: 48: 05.4775807) que es ... más de lo que necesita
Antoine Pelletier

72

En el Administrador IIS, haga clic derecho en el sitio y vaya a Administrar sitio web -> Configuración avanzada . En la opción Límites de conexión , debería ver Tiempo de espera de conexión .


66
Es lo mismo que el tiempo de espera de la solicitud. Estoy tratando de migrar datos de un documento xml y el tiempo de espera más rápido. Entonces, si aumento el tiempo de espera de la conexión, esto se resolverá.
Dotnet Rocks

12
no creo que esto sea correcto, si 'HTTP Keep-Alive' está habilitado, entonces esta configuración de tiempo se aplica a él, lo que significa cuánto tiempo la conexión se mantendrá viva, no creo que esto esté relacionado con 'tiempo de espera de solicitud' (cuánto tiempo espera para la ejecución de una página) ..
visual

1
Creo que esta es la respuesta correcta en ciertas situaciones, como subir un archivo grande. Mientras esperaba subir, el
David Hammond

45

Para aumentar el tiempo de espera de la solicitud, agregue esto a web.config

<system.web>
    <httpRuntime executionTimeout="180" />
</system.web>

y para una página específica agregue esto

<location path="somefile.aspx">
    <system.web>
        <httpRuntime executionTimeout="180"/>
    </system.web>
</location>

El valor predeterminado es 90 segundos para .NET 1.x.

El valor predeterminado de 110 segundos para .NET 2.0 y versiones posteriores.


3
Has ganado el +1 con la información sobre la ubicación
Gonza Oviedo

Muy útil. ¡Gracias!
jim1427

29

En IIS> = 7, una <webLimits>sección ha reemplazado ConnectionTimeout, HeaderWaitTimeout, MaxGlobalBandwidth, y MinFileBytesPerSecIIS 6 configuración de la metabase.

Configuración de ejemplo:

<configuration>
   <system.applicationHost>
      <webLimits connectionTimeout="00:01:00"
         dynamicIdleThreshold="150"
         headerWaitTimeout="00:00:30"
         minBytesPerSecond="500"
      />
   </system.applicationHost>
</configuration>

Como referencia: puede encontrar más información sobre estas configuraciones en IIS aquí . Además, no pude agregar esta sección a web.config a través del "editor de configuración" del administrador IIS, aunque apareció una vez que lo agregué y busqué la configuración.


55
Esto reemplaza ConnectionTimeout, no httpRuntime's executionTimeout.
usuario2864740

15

A continuación se detallan los pasos para solucionar su problema.

  1. Abre tu IIS
  2. Vaya a la opción " Sitios ".
  3. Clic derecho del mouse.
  4. Luego abra la propiedad " Administrar sitio web ".
  5. Luego haga clic en " Configuración avanzada ".
  6. Expanda la sección " Límites de conexión ", aquí puede configurar su " tiempo de espera de conexión "

ingrese la descripción de la imagen aquí


enlace para obtener más información: docs.microsoft.com/en-us/previous-versions/dotnet/…
JPatel

11

Sé que la pregunta era sobre ASP, pero tal vez alguien encuentre útil esta respuesta.

Si tiene un servidor detrás de IIS 7.5 (por ejemplo, Tomcat). En mi caso tengo una granja de servidores con el servidor Tomcat configurado. En tal caso, puede cambiar el tiempo de espera con el Administrador de IIS:

  • vaya a Granjas de servidores -> {Nombre del servidor} -> Proxy
  • cambiar el valor en el tiempo de espera cuadro de entrada de
  • haga clic en Aplicar (esquina superior derecha)

o puede cambiarlo en el archivo cofig:

  • abrir % WinDir% \ System32 \ Inetsrv \ Config \ applicationHost.config
  • ajustar la configuración del servidor webFarm para que sea similar a la siguiente

Ejemplo:

<webFarm name="${SERVER_NAME}" enabled="true"> 
  <server address="${SERVER_ADDRESS}" enabled="true">
    <applicationRequestRouting httpPort="${SERVER_PORT}" />
  </server>
  <applicationRequestRouting>
    <protocol timeout="${TIME}" />
  </applicationRequestRouting>
</webFarm>

El $ {TIME} está en formato HH: mm: ss (por lo tanto, si desea establecerlo en 90 segundos, póngalo allí 00:01:30)

En el caso de Tomcat (y probablemente otros contenedores de servlets), debe recordar cambiar el tiempo de espera en % TOMCAT_DIR% \ conf \ server.xml (solo busque el atributo connectionTimeout en la etiqueta del conector y recuerde que se especifica en milisegundos )


2
Tenga en cuenta que solo debe publicar respuestas que estén directamente relacionadas con la pregunta formulada. Dado que esta pregunta es puramente sobre IIS, una respuesta con información sobre Tomcat realmente no es relevante.
Andrew Barber

9
En este caso, creo que la respuesta es relevante ya que el caso de uso especificado aquí (usando el Enrutamiento de solicitud de aplicación IIS para enrutar a otro servidor) se trata de IIS. La configuración aquí también es configurable dentro del Administrador IIS. FWIW, esta respuesta me ayudó a resolver qué solicitud de tiempo de espera debería cambiar. (Dado que hay muchas configuraciones de tiempo de espera en el Administrador de IIS)
Jensen Ching

3

Use el siguiente comando de Power Shell para cambiar el tiempo de espera de ejecución (Solicitar tiempo de espera)

Tenga en cuenta que he dado esto para el sitio web predeterminado, antes de usarlos, cambie el sitio y luego intente usarlo.

 Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40"

O bien, puede usar el siguiente código de C # para hacer lo mismo

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();
        }
    }
}

O bien, puede usar JavaScript para hacer esto.

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();

O bien, puede usar los comandos de AppCmd.

appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40" 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.