Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Elmah not working with asp.net site

I've tried to use elmah with my asp.net site but whenever I try to go to http://localhost:port/elmah.axd I get resource not found exception. My web.config is given below.

    <?xml version="1.0"?>     <configuration>       <configSections>         <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" />           <section name="errorFilter" requirePermission="false"                    type="Elmah.ErrorFilterSectionHandler, Elmah"/>         </sectionGroup>       </configSections>       <elmah>         <security allowRemoteAccess="0" />         <errorLog type="Elmah.SqlErrorLog, Elmah"                   connectionStringName="elmah-sql" />         <errorMail                 from="my@account"                 to="myself"                 subject="ERROR From Elmah:"                 async="true"                 smtpPort="587"                 smtpServer="smtp.gmail.com"                 userName="my@account"                 password="mypassword" />       </elmah>        <connectionStrings>         <add name="elmah-sql" connectionString="data source=(sqlserver);                 database=elmahdb;              integrated security=false;User ID=user;Password=password"/>       </connectionStrings>       <system.web>         <compilation debug="true">           <assemblies>             <add assembly="Elmah, Version=1.0.10617.0, Culture=neutral,                 PublicKeyToken=null"/>           </assemblies>         </compilation>         <authentication mode="Windows"/>          <httpHandlers>           <remove verb="*" path="*.asmx"/>           <add verb="*" path="*.asmx" validate="false"              type="System.Web.Script.Services.ScriptHandlerFactory,                 System.Web.Extensions, Version=3.5.0.0, Culture=neutral,                    PublicKeyToken=31BF3856AD364E35"/>           <add verb="*" path="*_AppService.axd" validate="false"                 type="System.Web.Script.Services.ScriptHandlerFactory,                 System.Web.Extensions, Version=3.5.0.0, Culture=neutral,                     PublicKeyToken=31BF3856AD364E35"/>           <add verb="GET,HEAD" path="ScriptResource.axd"                   type="System.Web.Handlers.ScriptResourceHandler,                 System.Web.Extensions, Version=3.5.0.0, Culture=neutral,                      PublicKeyToken=31BF3856AD364E35" validate="false"/>         </httpHandlers>         <httpModules>           <add name="ScriptModule" type="System.Web.Handlers.ScriptModule,                  System.Web.Extensions, Version=3.5.0.0, Culture=neutral,                  PublicKeyToken=31BF3856AD364E35"/>         </httpModules>       </system.web>        <system.webServer>         <validation validateIntegratedModeConfiguration="false"/>         <modules runAllManagedModulesForAllRequests="true">           <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="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>           <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>           <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>         </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"/>           <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd"                         preCondition="integratedMode"                 type="Elmah.ErrorLogPageFactory, Elmah"/>         </handlers>       </system.webServer>     </configuration> 

EDIT: Elmah = (Error Logging Modules and Handlers)
http://code.google.com/p/elmah/

like image 252
TheVillageIdiot Avatar asked Jun 01 '09 04:06

TheVillageIdiot


People also ask

How do I enable Elmah?

To turn on ELMAH, navigate to Administration » Settings » Advanced » System » UI Elmah Config. Select the IsElmahLoggingTurnedOn checkbox and click Save changes. Every time you change the selection of this checkbox, you must restart the application.

How do you check Elmah error?

Build the application, run it in the browser, and navigate to http://www.yoursite.com/elmah.axd. You are prompted to log in before you see the content. After a successful authentication, you see a web page to remotely view the entire log of recorded exceptions.

What is Elmah .NET core?

Elmah (which stands for Error Logging Modules and Handlers) is a pluggable error management framework. Because Elmah can be used to attach error logging capabilities to your application without having to re-compile or re-deploy, it makes the process of detecting application errors almost seamless.


1 Answers

I just had a similar problem with Elmah not working in an IIS7 deployment. I found that I needed to register the Elmah Modules and Handlers in system.web AND system.webServer:

<system.web> ...   <httpHandlers>     ...     <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />     ...   </httpHandlers>   <httpModules>     ...     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />     ...   </httpModules>   ... </system.web> <system.webServer>   ...   <modules runAllManagedModulesForAllRequests="true">     ...     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />     ...   </modules>   <handlers>     ...     <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />     ...   </handlers> <system.webServer> 
like image 139
eyesnz Avatar answered Sep 27 '22 20:09

eyesnz