2009-04-23 19 views
5

Creo que mi aplicación web se apaga después de un tiempo.¿Cómo puedo configurar mi IIS para mantener viva mi solicitud?

Devuelve una nueva sesión si no he usado la aplicación en unos 5 minutos. El tiempo de espera de la sesión se establece en 720 minutos, por lo que no puede ser el problema.

¿Es tal vez una configuración en el grupo de aplicaciones o algo así? Me imagino que es algún tipo de gestión de recursos. Yo uso IIS 7.0

Soy un idiota con servidores así que por favor tengan paciencia si me falta lo obvio aquí.

Respuesta

8

Tuvimos el mismo problema con un servicio web que tuvo que permanecer en línea de una manera tal que no nos podíamos permitir la latencia implicados en su puesta en marcha si se rancio.

Escribimos un servicio de Windows muy simple que se despertaba cada 3 minutos y solicitaba una página como @Wayne sugirió. Trabajado como un encanto.

+0

Olvidé totalmente los servicios de Windows, eso sería perfecto para esto ... Avíseme si lo tiene y desea enviarlo ya que no he creado un servicio de Windows durante años :) –

+0

Debo admitir que para nuestros sitios De hecho, uso un winform minimizado con un control de navegador .NET integrado que lee una lista de URL de un archivo txt y solicita cada uno en el navegador – Wayne

+0

Lo siento, napster. No se puede hacer. Por mucho que me gustaría, los poderes fácticos NO estarían impresionados. Hay muchas muestras alrededor de la red, por lo que no será difícil juntarlas. – Andrew

3

La manera más simple es usar una secuencia de comandos para abrir una conexión al sitio web y solicitar su página. Vea Joel Oleson's Blog para más información.

Se pueden utilizar ventanas planificador para ejecutarse cada x minutos.

Esto puede ser específico de Sharepoint pero puede adaptarse a sus requisitos.

Actualización: Prueba esta versión: WarmUpServer.zip

+0

los archivos ya no existen en esa publicación de blog ... de lo contrario parece ser lo que estaba buscando, ¿alguien tiene un script que pueda hacer esto por mí? –

0

Los grupos de aplicaciones hacen de reciclaje, y que no se reinician después de haber logrado algunos límites en términos de tiempo de ejecución o el número de solicitudes, etc., que se pueden configurar en IIS.

IIS 7 se ejecuta realmente en modo interconexión, por lo que es algo nuevo que aún no conocemos, pero todo lo que puede hacer para activar su aplicación es configurar un desencadenador desde otra máquina que conectará su servidor cada 5 o 10 o 60 minutos e intenta buscar una página html.

No puede haber varios monitores de servidor de http también.

+0

Bueno, es muy probable que no experimente este problema una vez que salgamos a la luz porque habrá mucho más uso pero aún así es molesto como el infierno ... Parece muy estúpido configurar un ping desde otro servidor, me niego a creer que es la mejor solución :) –

+0

@napster: es poco probable que encuentre una mejor solución a menos que cambie a un servidor web diferente. –

+0

"pero todo lo que puede hacer para que su aplicación sea activa es establecer un desencadenador desde otra máquina", ¿por qué tiene que ser alguna otra máquina? no se puede ejecutar en la máquina del servidor? – Peter

31

IIS tiene una característica de las propiedades donde se puede dejar de reciclar su IIS en intervalos

  1. Vaya a su "Administrador de IIS"
  2. Seleccione "Grupo de aplicaciones" en la instancia que desea administrar.
  3. Seleccione la opción "Configuración avanzada"
  4. En "Reciclaje" y establezca "Intervalo de tiempo normal" en 0, lo que significa que el grupo de aplicaciones no se recicla.
+1

Esta es la respuesta * correcta * . El OP ya pasó de largo. –

+2

La mía se estableció en 1740 minutos (29 horas) que [es la predeterminada y lo ha sido desde que se agregaron grupos de aplicaciones a IIS] (https://weblogs.asp.net/owscott/why-is-the-iis-default- app-pool-recycle-set-to-1740-minutes) así que no creo que pueda ser así, la pregunta decía que eran 5 minutos. – MrLore

5
  1. abierto "Administrador de IIS"
  2. Seleccionar "grupo de aplicaciones" en la instancia que quieren administrar
  3. seleccione "Configuración avanzada"
  4. bajo tierra "(General)" y ajuste "Modo de inicio" a "AlwaysRunning", lo que significa que el grupo de aplicaciones mantiene la aplicación ASP.NET ejecutándose siempre

PS. Si quieres el ASP.NET se cargará automáticamente, puede seguir esto:

  1. abierto "Administrador de IIS"
  2. Seleccione la aplicación que desea administrar
  3. seleccione "Configuración avanzada"
  4. bajo tierra "(General)" y establezca "Precarga habilitada" en "verdadero", lo que significa que la aplicación se cargará automáticamente después de su implementación.

Para obtener más información, visite la siguiente: Use IIS Application Initialization for keeping ASP.NET Apps alive

+0

Esto no funciona como era de esperar ... tenemos el problema anterior y aquí es donde comencé. – War

0

Después fallado en la configuración de la piscina de IIS. Salgo con este simple servicio de Windows. github code

Puede ahorrar algunos minutos de usted.

Cuestiones relacionadas