使用带有 Class 库的 ASP.NET WebApp 的 ELMAH
Using ELMAH with ASP.NET WebApp with a Class library
我有一个 ASP.NET 4.5 Web 应用程序(IIS 7.5 上的 运行),它从我引用的 class 库中调用一个方法。
当我有未处理的异常时,我想将 ELMAH 添加到日志中。
我已经用 NuGet 安装了 ELMAH。它很好用。
问题是它不记录来自 class 库的任何异常,它只记录来自 Web 应用程序的异常。
我尝试在我的 class 库中添加一个 try catch 并尝试使用以下方法手动记录异常:
ErrorSignal.FromCurrentContext().Raise(e);
但这没有任何作用。
我是否必须在 Web 应用程序和 class 库上安装和引用 ELMAH? web.config 是否足以让 class 库知道要使用哪些处理程序和模块?还是我需要在 class 库中添加另一个配置?
我注意到网络应用程序和 class 库都有一个 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>
我在 Whosebug 上找到了很多关于这个主题的页面,但找不到适合我的答案。
有些人推荐使用
ErrorLog.GetDefault(HttpContext).Log(new Error(errExc));
但是 HttpContext 不可用。我尝试使用 null 而不是 HttpContext 但它也没有帮助。
在网上搜索时,我发现 ELMAH 只记录来自网络应用程序的内容。通过安装 NLog 或使用 System.Diagnostic.Trace,我能够记录来自 class 库的内容。
也许我错了,所以如果有人对 ELMAH 和 class 库有更多经验,请分享。
谢谢!
我有一个 ASP.NET 4.5 Web 应用程序(IIS 7.5 上的 运行),它从我引用的 class 库中调用一个方法。 当我有未处理的异常时,我想将 ELMAH 添加到日志中。 我已经用 NuGet 安装了 ELMAH。它很好用。 问题是它不记录来自 class 库的任何异常,它只记录来自 Web 应用程序的异常。
我尝试在我的 class 库中添加一个 try catch 并尝试使用以下方法手动记录异常:
ErrorSignal.FromCurrentContext().Raise(e);
但这没有任何作用。
我是否必须在 Web 应用程序和 class 库上安装和引用 ELMAH? web.config 是否足以让 class 库知道要使用哪些处理程序和模块?还是我需要在 class 库中添加另一个配置?
我注意到网络应用程序和 class 库都有一个 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>
我在 Whosebug 上找到了很多关于这个主题的页面,但找不到适合我的答案。
有些人推荐使用
ErrorLog.GetDefault(HttpContext).Log(new Error(errExc));
但是 HttpContext 不可用。我尝试使用 null 而不是 HttpContext 但它也没有帮助。
在网上搜索时,我发现 ELMAH 只记录来自网络应用程序的内容。通过安装 NLog 或使用 System.Diagnostic.Trace,我能够记录来自 class 库的内容。
也许我错了,所以如果有人对 ELMAH 和 class 库有更多经验,请分享。
谢谢!