我正在使用quartz.net 在asp.net mvc 应用程序中安排常规事件。
计划的作业应调用需要 UrlHelper 实例的服务层脚本(用于根据via urlHelper.Action(..)
将由服务发送的电子邮件中包含的正确路由 () 创建 URL)。
我不想将链接硬编码到电子邮件中 - 它们应该使用 urlhelper 解决。
工作:
public class EvaluateRequestsJob : Quartz.IJob
{
public void Execute(JobExecutionContext context)
{
// where to get a usable urlHelper instance?
ServiceFactory.GetRequestService(urlHelper).RunEvaluation();
}
}
请注意,这不是在 MVC 管道中运行的。当前没有服务请求,代码由 Quartz 调度程序在定义的时间运行。
如何获得在指定位置可用的 UrlHelper 实例?
如果无法构造 UrlHelper,我看到的另一个选项是通过执行 HTTP 请求使作业“自调用”控制器操作 - 在执行操作时,我当然会有一个 UrlHelper 实例可用 - 但这对我来说似乎有点hacky。