【发布时间】:2011-09-09 14:48:48
【问题描述】:
我有一个 asp.net mvc 3 应用程序。在这个应用程序中,我有一个提醒系统,它使用石英从数据库中获取消息并将它们发送出去。
我想知道如果发生某些事情(比如数据库超时 - 我想知道这一点),最好的记录方式是什么。
我在我的 mvc 应用程序 ELMAH 中使用我的日志记录,它工作得很好。但是,由于quartz.net 是没有httpcontext 的自己的线程,所以我不能使用ELMAH(或者至少我认为我不能)。我尝试通过首先查询我的主页然后通过调度程序代码并将其用作上下文来创建一个 httpcontext,但这不起作用。
System.ArgumentNullException was unhandled by user code
Message=Value cannot be null.
Parameter name: application
Source=Elmah
ParamName=application
StackTrace:
at Elmah.ErrorSignal.Get(HttpApplication application)
at Elmah.ErrorSignal.FromContext(HttpContext context)
at Job.Execute(JobExecutionContext context) in Job.cs:line 19
at Quartz.Core.JobRunShell.Run()
InnerException:
ErrorSignal.FromCurrentContext().Raise(new System.Exception());
所以我正在寻找如何让 ELMAH 在这种情况下工作或类似的东西(发送电子邮件、堆栈跟踪和 ELMAH 所具有的一切)。
【问题讨论】:
标签: error-handling quartz-scheduler elmah quartz.net error-logging