【发布时间】: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。