Asp.net ELMAH安装程序-未捕获错误

Asp.net ELMAH安装程序-未捕获错误,asp.net,elmah,Asp.net,Elmah,我已经完全按照示例应用程序设置了ELMAH。我试图通过使用以下命令抛出一个错误来测试ELMAH: throw new InvalidOperationException(); 然而不幸的是,我的应用程序直接出现了错误,ELMAH没有捕获/记录错误。我正在使用ASP.NET3.5。我不确定我做错了什么,因为Web.Config与示例完全相同,因为Elmah是开源的,所以您应该将代码作为项目添加到解决方案中,并确保在所有异常上都有visual studio中断。听起来,Elmah抛出一个例外是可行

我已经完全按照示例应用程序设置了ELMAH。我试图通过使用以下命令抛出一个错误来测试ELMAH:

throw new InvalidOperationException();

然而不幸的是,我的应用程序直接出现了错误,ELMAH没有捕获/记录错误。我正在使用ASP.NET3.5。我不确定我做错了什么,因为Web.Config与示例完全相同

,因为Elmah是开源的,所以您应该将代码作为项目添加到解决方案中,并确保在所有异常上都有visual studio中断。听起来,Elmah抛出一个例外是可行的,它将被吞并。这正是发生在我身上的事情,插入错误的是存储过程的权限

原创
您的测试是否在try/catch块内?如果是这样,则必须显式强制进行日志记录

Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
我的WEB.CONFIG设置

  <configSections>
    <sectionGroup name="elmah">
      <section name="security" type="Elmah.SecuritySectionHandler, Elmah"/>
      <section name="errorLog" type="Elmah.ErrorLogSectionHandler, Elmah" />
      <section name="errorMail" type="Elmah.ErrorMailSectionHandler, Elmah" />
      <section name="errorFilter" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
    </sectionGroup>
   ...
   </configSections>

  <elmah>
    <security allowRemoteAccess="0" />
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="TESTElmahConnectionString" />
    <errorFilter>
      <test>
        <equal binding="HttpStatusCode" value="404" type="Int32" />
      </test>
    </errorFilter>
  </elmah>


<httpModules>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <remove name="ScriptModule"/>
      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <remove name="ScriptHandlerFactory"/>
      <remove name="ScriptHandlerFactoryAppServices"/>
      <remove name="ScriptResource"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </handlers>
  </system.webServer>

...

再次检查您的Web.config。我有同样的问题,直到我意识到我忘记注册模块

<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />

有用。

还没有try-catch块。我只是想在我发出信号之前让基本的默认处理工作起来,我已经得到了那一行,但仍然没有乐趣。啊,我错过了这一行。这是特别令人烦恼的,因为它在dev中工作,但我在dev中使用iis7,在prod中使用iis6…我想知道为什么我在IIS中不需要它?不管怎样,谢谢,正是这样。@DKong:我修改了我的帖子,如果这对你有帮助,请告诉我……你看到与上面代码相关的InvalidOperationException YSOD了吗?还是另一个例外?你能发布你的web.config吗?(显然删除任何私人信息)