5

我正在尝试设置ELMAH来为我们的应用程序记录错误。我已成功添加模块并且加载 ErrorLog 页面 (elmah.axd) 没有问题。但是,Elmah 没有记录我生成的任何测试异常。

我的 web.config 看起来像这样:

<configSections>
    <!-- Other stuff -->
    <sectionGroup name="elmah">
        <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
        <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/>
        <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"/>
    </sectionGroup>
</configSections>

<elmah>
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" /> 
</elmah> 

<httpHandlers> 
    <!-- Other stuff -->
    <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</httpHandlers>

<httpModules>
    <!-- Other stuff -->
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
</httpModules>

点击测试异常页面会http://localhost/elmah.axd/test生成黄屏,但没有日志条目。

在提供的示例和DotNetSlackers上的教程之间,我看不出有任何问题。有什么我想念的吗?我也尝试通过Signaling生成错误,但这也不起作用。

我正在针对 DotNetNuke 运行它,这就是我目前认为问题所在的地方。

4

3 回答 3

8

我认为您需要做的是禁用 DotNetNuke 中的自定义错误消息。
1. 以主机身份登录 dnn 门户
2. 导航到主机 > 主机设置。
2. 进入基本设置 - 外观部分。
3. 在使用自定义错误消息中,取消选中该复选框。
4. 单击更新。
这将禁用 DotNetNuke 的错误处理程序。

于 2009-03-25T13:55:17.353 回答
1

可能是 DNN 正在吞噬异常——它有自己的异常处理机制吗?

我将 ELMAH 与 Monorail 一起使用并遇到了类似的问题 - Castle MonoRail & ELMAH

仅供参考,其他人也有同样的问题。

于 2009-03-20T20:07:46.690 回答
1

DNN 确实处理所有异常,所以这可能是您看到的问题。我相信它在应用程序级别处理错误事件,将所有内容记录到数据库中。我不知道有什么方法可以关闭它,但我也从未真正尝试过。

于 2009-03-20T21:14:32.393 回答