Estoy usando quartz.net para programar eventos regulares dentro de la aplicación asp.net mvc.ASP.NET MVC: ¿Cómo crear una instancia utilizable de UrlHelper?
El trabajo programado debe llamar a un script de capa de servicio que requiere una instancia de UrlHelper (para crear Urls en función de las rutas correctas (via urlHelper.Action(..)
) contenidas en los correos electrónicos que enviará el servicio).
No quiero codificar los enlaces en los correos electrónicos, deben resolverse usando el urlhelper.
El trabajo:
public class EvaluateRequestsJob : Quartz.IJob
{
public void Execute(JobExecutionContext context)
{
// where to get a usable urlHelper instance?
ServiceFactory.GetRequestService(urlHelper).RunEvaluation();
}
}
Tenga en cuenta que esto no se ejecuta dentro de la tubería MVC. No se está atendiendo ninguna solicitud actual, el programador de Quartz ejecuta el código en momentos definidos.
¿Cómo puedo obtener una instancia de UrlHelper utilizable en el lugar indicado?
Si no es posible construir un UrlHelper, la otra opción que veo es hacer que el trabajo "auto-llame" sea una acción del controlador haciendo una solicitud HTTP, mientras ejecuto la acción tendré una instancia de UrlHelper disponible, pero esto me parece un poco raro.
Wow los votos negativos están volando hacia fuera en este hilo :) – Kelsey
@Kelsey tal vez es debido a que la cuestión parece ser demasiado trivial para que las personas tienden a dar trivial o irrelevante las respuestas o la pregunta requieren al menos conocimiento básico de un marco no tan conocido (cuarzo) – Marek
¿Utiliza este programador de cuarzo algo similar al método en el que Jeff hizo una publicación en: http://blog.stackoverflow.com/2008/07/ easy-background-tasks-in-aspnet /? – Kelsey