我正在关注this文章,使用ELMAH将错误记录到XML文件中。我将elmah.dll添加到我的Web应用程序的bin中,并修改了Web配置,如下所示。但我在App_Data文件夹中找不到任何xml文件。
网络配置
<configSections>
<sectionGroup name="elmah">
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<customErrors mode="On" defaultRedirect="Error.html"> </customErrors>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</httpModules>
<httpRuntime/>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>
注意: validateIntegratedModeConfiguration
是为了避免检测到的ASP.NET设置不适用于集成管理管道模式错误
代码
protected void Page_Load(object sender, EventArgs e)
{
throw new InvalidCastException();
}
还可以使用http://localhost/Elmah.Articel.web/elmah.axd找到日志。所以我尝试了http://localhost:61276/elmah.axd,但它引发了404错误。
答案 0 :(得分:1)
尝试以下方法,我这样使用,
<elmah>
<security allowRemoteAccess="false" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>