将ELMAH与带有类库的ASP.NET WebApp一起使用

时间:2017-05-04 10:58:35

标签: asp.net iis elmah

我有一个ASP.NET 4.5 Web应用程序(在IIS 7.5上运行),它从我引用的类库中调用一个方法。 当我有未处理的异常时,我想添加ELMAH来记录。 我已经用NuGet安装了ELMAH。它很棒。 问题是它不记录来自类库的任何异常,它只记录来自Web应用程序的异常。

我尝试在我的类库中添加try catch,并尝试使用以下命令手动记录异常:

ErrorSignal.FromCurrentContext().Raise(e);

但这没有做任何事情。

我是否必须在Web应用程序和类库上安装和引用ELMAH? web.config是否足以让类库知道要使用哪些处理程序和模块?或者我需要在类库中添加另一个配置吗?

我注意到web应用程序和类库都有一个packages.config但它只包含:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="elmah" version="1.2.2" targetFramework="net45" />
  <package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" />
</packages>

我在stackoverflow上找到了很多关于这个主题的页面,但是找不到适合我的答案。

有些人建议使用

ErrorLog.GetDefault(HttpContext).Log(new Error(errExc)); 

但是HttpContext不可用。我尝试使用null而不是HttpContext,但它也没有帮助。

1 个答案:

答案 0 :(得分:0)

在线搜索时,我发现ELMAH只记录来自网络应用程序的内容。我能够通过安装NLog或使用System.Diagnostic.Trace来记录来自类库的内容。

也许我对此错了,所以如果有人对ELMAH和类库有更多经验,请分享。

谢谢!