有什么方法可以访问 Quartz.NET 作业中的 HttpContext 对象吗?

jon*_*333 4 quartz-scheduler quartz.net

有什么方法可以从 Quartz.NET 作业访问 HttpContext 对象吗?HttpContext.Current 等似乎不适用于 Quartz.NET 作业。

Jal*_*kib 5

是的,有办法。
只需在实例化新调度程序时将HttpContext.Current设置为JobDataMap(可能在 Global.asax 中的 Application_Start 事件中),如下所示:

jobDetail.JobDataMap["context"] = HttpContext.Current;
Run Code Online (Sandbox Code Playgroud)

然后在 Execute 方法中访问它,如下所示:

HttpContext context = context.JobDetail.JobDataMap["context"] as HttpContext;
Run Code Online (Sandbox Code Playgroud)

  • 这是一个非常危险的建议。您正在引用上下文,一旦关联的请求完成,该引用将变为 null (2认同)