¿Cómo debo realizar una tarea de larga duración en ASP.NET 4?

Estoy construyendo un sitio web usando .NET 4. Hay muchos artículos de MSDN que datan de 2003, sobre el uso de objetos Thread y 2007, utilizando páginas asincrónicas en .NET 2, pero eso es bastante rancio. Sé que .NET 4 nos trajo elTask class yalgunas personas advierten vagamente contra su uso para este propósito.

Así que le pregunto, ¿cuál es el método "preferido" alrededor de 2011 para ejecutar el trabajo en segundo plano / asíncrono bajo IIS en ASP.NET 4? ¿Qué advertencias hay sobre el uso de Thread / Task directamente? ¿Async = true todavía está de moda?

EDIT: Ok, ok, de las respuestas está claro que la opinión es que debería hacer un servicio si puedo. Pero las ventajas de hacerlo dentro de la aplicación web son significativas, especialmente la implementación / redistribución más fácil. Suponiendo que el proceso es seguro para bloquear, entonces, si tuviera que hacerlo dentro de IIS, ¿cuál es la mejor manera?

Respuestas a la pregunta(5)

Su respuesta a la pregunta