Elmah - Web配置配置

时间:2015-05-29 11:54:27

标签: c# asp.net logging exception-handling elmah

我正在关注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错误。

1 个答案:

答案 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>