我正在尝试设置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
会生成yellow screen,但不会生成日志条目。
在提供的示例和DotNetSlackers上的教程之间,我看不出有什么不对。有什么我想念的吗?我还尝试通过Signaling生成错误,但这也不起作用。
我正在针对DotNetNuke运行这个,所以我正在考虑问题所在。
答案 0 :(得分:8)
我认为您需要做的是在DotNetNuke中禁用自定义错误消息
1.以dnn Portal身份登录为主机
2.导航到主机&gt;主机设置。
2.转到基本设置 - 外观部分。
3.在“使用自定义错误消息”时,取消选中该复选框。
4.单击“更新”
这将禁用DotNetNuke的错误处理程序。
答案 1 :(得分:1)
可能是DNN正在吞下异常 - 它是否有自己的异常处理机制?
我使用ELMAH和Monorail进行了类似的问题 - Castle MonoRail & ELMAH
FYI Someone else遇到同样的问题。
答案 2 :(得分:1)
DNN会处理所有异常,因此这可能是您所看到的问题。我相信它在应用程序级别处理Error事件,将所有内容记录到数据库中。我不知道有什么方法可以解决这个问题,但我也从未真的那么努力过。