2010-04-29 27 views
28

Finalmente se descompuso y en busca de ayuda, mi cliente/iis (no estoy seguro de cuál) por lo general agota el tiempo después de 30s - 1 minuto mientras estoy depurando (pasando por el código) lo cual no solo me causa pierdo mi lugar y tengo que comenzar de nuevo (generalmente avanzando más rápido, cometiendo más errores) pero la sesión de depuración de IIS se cierra por completo y tengo que volver a calentar toda la sesión.Depuración de ASP.NET Sincronización con IIS

¿Cuál es la mejor manera de obtener más tiempo de una sesión de depuración?

Depuración de una vainilla 3.5 Web Sitio (no aplicación) en IIS 7.5 Classic Pipeline

+0

No sé si esto ayuda o no, pero en mi experiencia, sólo he tenido este problema con sitios Web y no Web Aplicaciones. Por MUCHAS razones, trato de evitar sitios web como la peste. – Jaxidian

+0

Realmente no tengo otra opción, este soy yo tratando de mantener un sitio existente mientras construimos el nuevo WebAPP para reemplazarlo. – Aren

+0

¿Cómo estás depurando? Windbg o Visual Studio de depuración remota? En casos extremos, utilizo windbg y me conecto al proceso. De esta manera todavía tengo el estado. –

Respuesta

30

Ajuste del límite de conexión funciona si se establece lo suficientemente alta. No quería volver a molestarme con esto nunca más. Here es lo que hice:

Esto supone que tienes un grupo de aplicaciones IIS seleccionado en el Administrador de IIS

... en el cuadro de diálogo Configuración avanzada, busque la sección Modelo de proceso, y realice una de las siguientes acciones:

  1. Configure Ping Enabled to False.
  2. Establezca el tiempo de respuesta máximo de ping en un valor que sea mayor que 90 segundos.

Configurar Ping habilitado en False impide que IIS verifique si el proceso de trabajo aún se está ejecutando y mantiene el proceso de trabajo activo hasta que se detiene el proceso depurado. Establecer Ping Maximum Response Time en un valor grande permite que IIS continúe supervisando el proceso de trabajo.

+0

Vale la pena señalar que establecer el Tiempo de respuesta en algo grande es "suficiente" para solucionar el problema, Ping habilitado ayudará. Marcar esto como aceptado porque es más correcto que el otro. – Aren

+0

Supongo que debería cambiar mi redacción de "... no funcionó para mí". a "... no funcionó como yo quería sin volver a molestarme nunca más". –

+0

Solo cambio el grupo de aplicaciones de mi sitio web a su valor predeterminado (DefaultAppPool) y su funcionamiento. :) Gracias. – pampi

4

En lugar de cambiar la configuración de grupo de aplicaciones en IIS, debe cambiar temporalmente el atributo httpRuntime executionTimeout en el web.config. El valor predeterminado es 110 segundos, que suele ser mucho tiempo, pero no si está depurando. Aumentar el tiempo de espera permitirá que las solicitudes al servidor se ejecuten durante más tiempo.

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

Eso lo establece en 6 minutos (360 segundos).

Después de que termine de depurar, puede eliminar el atributo e IIS volverá a la configuración predeterminada.

2

Tenga en cuenta que si está utilizando un ScriptManager (por ejemplo, paneles de actualización), que utiliza su propio tiempo de espera establecido por:

<asp:ScriptManager ID="ScriptManager1" AsyncPostBackTimeout="???" ... 
</asp:ScriptManager> 

le recomiendo que se establezca en un valor alto sólo cuando en la depuración. Usted puede hacer esto en el caso pageload de la página donde existe el control scriptmanager:

If Debugger.IsAttached Then 
    ScriptManager1.AsyncPostBackTimeout = 600 
End If