elmah:没有HttpContext的例外?

42 c# asp.net elmah exception httpcontext

我在Application_Start上生成一个线程,并希望记录异常.没有Context/HttpContext/HttpContext.Current,所以我怎么能让它登录?

目前,它没有捕获我的线程中的任何异常,如果我写,ErrorSignal.FromCurrentContext().Raise(ex);我得到一个关于上下文的错误不能为空.

也许我可以创建一个虚拟的HttpContext但不知何故我认为这不会很好.

-edit-我试过ErrorSignal.Get(new HttpApplication()).Raise(ex);,它似乎没有拿起那个例外.

小智 73

确保在web.config中设置应用程序名称

<errorLog type="Elmah.SqlErrorLog, Elmah" 
          connectionStringName="nibWeb" 
          applicationName="Nib.Services" />
Run Code Online (Sandbox Code Playgroud)

然后

ErrorLog.GetDefault(null).Log(new Error(error));
Run Code Online (Sandbox Code Playgroud)

将工作

  • 警告:此方法似乎不会引发真正的Elmah错误事件 - 例如,您将不会收到错误电子邮件(如果已配置).你需要为此调用.Raise().不幸的是,你需要为.Raise()提供一个HttpContext,所以我知道在这种情况下这样做的唯一方法是存储一个HttpContext并在以后使用它. (4认同)