Explicación del ciclo de vida de la aplicación WCF en el entorno de alojamiento IIS 6

Explicación del ciclo de vida de la aplicación WCF en el entorno de alojamiento IIS 6

Hola a todos y gracias por leer.

Tengo un problema de demora en el que mi aplicación tarda mucho en iniciarse cuando se llama por primera vez después de un período determinado desde la última llamada. La aplicación web es un servicio WCF y estamos hablando de un retraso de ~18 segundos antes de que comience el procesamiento real. Ahora, creo que sé cómo reducir este retraso, por lo que esa no es mi pregunta (de todos modos, es más un acuerdo de stackoverflow)

Mi pregunta es¿Alguien puede explicarme por qué a pesar de que deshabilité el cierre del proceso de trabajo y el reciclaje del proceso de trabajo, la aplicación todavía se "cierra" después de un período indeterminado de inactividad?

Para entender esto necesito saber más sobre el funcionamiento interno de los servicios WCF alojados en IIS. Espero plenamente que haya una respuesta directa a esto.

Muchas gracias por cualquier ayuda que puedas ofrecer, DC.

Respuesta1

Si todo está sin marcar en la pestaña Reciclaje y Rendimiento del proceso de trabajo, IIS no debería finalizar los procesos. ¿Hay entradas en el registro de eventos que correspondan al momento en que el proceso "finaliza"? Me parece que la aplicación WCF podría fallar. WCF no registra excepciones en el registro de eventos como una aplicación .NET estándar, por lo que si no escribe sus propios registros, es posible que desee activarSeguimiento WCFpara ver si quizás ese sea el problema.

Mientras tanto, la solución rápida y fea a su problema puede ser crear algún tipo de prueba barata o transacción de solo lectura en su servicio WCF y simplemente configurar una aplicación o script de monitoreo para sondearlo cada X segundos para mantener vivo el proceso de trabajo con el código. pre-JIT.

Respuesta2

Creo que el problema no estaba relacionado con WCF y la falla residió en que nHibernate resolvió sus asignaciones. Lo resolví compilando los archivos de mapeo de NHibernate para que NHibernate no tuviera que hacerlo.

información relacionada