alexbeletsky / elmah-mvc

Painless integration of ELMAH into ASP.NET MVC application
http://nuget.org/packages/Elmah.MVC
Apache License 2.0
266 stars 61 forks source link

ELMAH MVC 2.0.2 - Error 404 (Resource not found) on Production/Test Servers #34

Closed ghost closed 11 years ago

ghost commented 11 years ago

I'm sure this question has been asked many times but believe me I've tried every possible solution.

Scenario : I am using ELMAH MVC 2.0.2 in my MVC3 project and everything works perfect on my local machine. When I deploy the code on Prod/Test Servers I get the dreaded '404 Resource not found' error message. I have tried adding the relevant code to the tags but that didn't work. I was using XMLLogging on my local machine and thought it might be a folder permission issue so tried my luck using Memory logging but had no luck.

Code :

Web.Config

<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="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
    </sectionGroup>
  </configSections>

  <appSettings>
      <add key="elmah.mvc.disableHandler" value="false" />
      <add key="elmah.mvc.disableHandleErrorFilter" value="false" />
      <add key="elmah.mvc.requiresAuthentication" value="false" />
      <add key="elmah.mvc.allowedRoles" value="*" />
      <add key="elmah.mvc.route" value="elmah" />
  </appSettings>

  <system.web>
    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>
    <httpHandlers>
      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    </httpHandlers>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
    <handlers>
      <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
    </handlers>
  </system.webServer>

  <elmah>
    <errorLog type="Elmah.MemoryErrorLog, Elmah" size="50" />
    <!--<errorLog type="Elmah.XMLFileErrorLog, Elmah" logPath="D:\\ELMAH" />-->
  </elmah>
</configuration>

Global.asax.cs

namespace abc
{
    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new ElmahHandledErrorLoggerFilter());
            filters.Add(new HandleErrorAttribute());
        }

public static void RegisterRoutes(RouteCollection routes)
{
    string actionMethod = System.Web.Configuration.WebConfigurationManager.AppSettings.Get("actionpage");
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    //routes.IgnoreRoute("elmah.axd/{*pathInfo}");

    routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "abc", action = actionMethod, id = UrlParameter.Optional } // Parameter defaults
);
}

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    Telerik.Web.Mvc.WebAssetDefaultSettings.ScriptFilesPath = @"~/Scripts/2011.1.315/";

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
  }
}

} I have also tried to configure Handler Mappings and Modules in IIS Manager but that didn't work either. I am not sure if I need to make any changes to the applicationhost.config file. I have site minder installed on IIS7 on Test/Prod server and the site is protected. Is there a chance that's causing a problem? Any help will be appreciated.

Thanks