2009-11-13 6 views
7

Tengo un sitio WCF en IIS 7. Raramente se accede al sitio, lo que hace que la aplicación se descargue. ¿Cómo puedo mantener la aplicación (WCF) activa todo el tiempo?¿Cómo mantener un sitio de WCF en línea?

+0

No aloje en IIS - haga su propio alojamiento en un servicio de Windows NT –

+0

Eso es una idea, pero más bien use IIS. –

Respuesta

13

No hay ninguna razón para dejar de usar IIS. Todo lo que necesita hacer es configurar las opciones del grupo de aplicaciones para que el servicio nunca se cierre debido a la inactividad. Lamentablemente, los valores predeterminados son algo así como 20 minutos de inactividad y cada 29 horas independientemente.

Lo que sugeriría es:

  1. Crear un nuevo grupo de aplicaciones sólo para su servicio.
  2. Una vez creado, haga clic derecho sobre él y seleccione "Configuración avanzada ..."
  3. Busque el ajuste "Tiempo de espera inactivo (minutos)" en el grupo "Modelo de procesador". Cambie esta configuración a 0 para que el servicio nunca se cierre debido al ralentí.
  4. Considere cambiar también la configuración del "Intervalo de tiempo regular (minutos)" en el grupo "Reciclaje" si no desea que se recicle el proceso. Puede establecer esto en algunos minutos (como ya he dicho son 29 horas por defecto) o puede configurarlo en 0 y en su lugar configurar el ajuste "Tiempos específicos" para que su servicio se recicle en momentos óptimos del día (por ejemplo, 4 a.m. o algo así). Si ejecuta una granja de servidores web, debe configurar la granja de servidores para que la reciclen de forma escalonada, de modo que en un momento dado solo se esté reciclando un servidor.

la trivia: la razón por la que el reciclaje por defecto es 29hrs es porque esto causa un reciclaje de todos los días, pero más tarde 5 horas cada día para que la hora del día nunca es el mismo.

Para obtener más información sobre la configuración de grupos de aplicaciones, consulte esta sección en TechNet titulada Managing Application Pools que trata los temas que he mencionado anteriormente y muchos otros.

+0

Gracias mucho, eso es exactamente lo que necesitaba. –

0

Hay un par de opciones.

  1. Como se señaló en el comentario de marc_s, se podía alojar el sitio en un servicio de Windows o incluso una aplicación
  2. crear una solicitud de mantenimiento de conexión que hace ping a su sitio con una consulta a una base frecuente.

Por último, en .NET Framework 4.0 tiene la opción de mantener las aplicaciones vivas indefinidamente. Dudo que estés en 4.0 todavía, pero es una cosa a considerar.

+0

La sugerencia .NET 4.0 suena muy interesante como una opción futura, ¿podría darme una referencia? –

+0

Aquí: http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx –

Cuestiones relacionadas