En una aplicación ASP.Net, el usuario hace clic en un botón en la página web y luego crea una instancia de un objeto en el servidor a través del controlador de eventos y llama a un método en el objeto. El método pasa a un sistema externo para hacer cosas y esto puede llevar un tiempo. Entonces, lo que me gustaría hacer es ejecutar esa llamada al método en otro hilo para poder devolver el control al usuario con "Su solicitud ha sido enviada". Estoy razonablemente feliz de hacer esto como disparar y olvidar, aunque sería aún mejor si el usuario pudiera seguir sondeando el estado del objeto.
Lo que no sé es si IIS permite que mi hilo siga funcionando, incluso si la sesión del usuario expira. Imagínese, el usuario dispara el evento y nosotros instanciamos el objeto en el servidor y disparamos el método en un nuevo hilo. El usuario está satisfecho con el mensaje "Su solicitud ha sido enviada" y cierra su navegador. Eventualmente, esta sesión de usuarios expirará en IIS, pero es posible que el subproceso aún se esté ejecutando, funcionando. ¿IIS permitirá que el hilo siga ejecutándose o lo matará y eliminará el objeto una vez que expire la sesión del usuario?
EDITAR: De las respuestas y comentarios, entiendo que la mejor manera de hacer esto es mover el procesamiento de larga duración fuera de IIS. Aparte de todo lo demás, se trata del problema de reciclaje del dominio de aplicación. En la práctica, necesito que la versión 1 despegue en un tiempo limitado y tengo que trabajar dentro de un marco existente, por lo que me gustaría evitar la capa de servicio, de ahí el deseo de simplemente disparar el hilo dentro de IIS. En la práctica, la "ejecución prolongada" aquí solo será de unos minutos y la concurrencia en el sitio web será baja, por lo que debería estar bien. Pero, la próxima versión definitivamente necesitará dividirse en una capa de servicio separada.