【问题标题】:Using ELMAH with ASP.NET WebApp with a Class library将 ELMAH 与带有类库的 ASP.NET WebApp 一起使用
【发布时间】:2017-10-02 12:29:51
【问题描述】:

我有一个 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 但它也没有帮助。

【问题讨论】:

  • 从你的类库中尝试 ErrorLog.GetDefault(null).Log(new Error(errExc)),它也需要引用 ELMAH。

标签: asp.net iis elmah


【解决方案1】:

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

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

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 2010-12-17
    • 2011-03-20
    • 2010-10-20
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    相关资源
    最近更新 更多