Asp.net-Mvc

ASP.NET MVC - Elmah 不工作並為 elmah.axd 返回 404 頁面

  • May 22, 2017

我正在嘗試將 elmah 用於我的 MVC 應用程序,並且我已按照 wiki 上的步驟操作:http ://code.google.com/p/elmah/wiki/MVC ,但即便如此嘗試訪問 myapp/elmah .axd 頁面:

404 - 找不到文件或目錄。

任何人都可以幫助我嗎?

OBS:我的 IIS 版本是 7.5


如果有幫助,我將發布我的 web.config 的相關部分:

<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>
...
</connectionStrings>
<elmah>
 <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>
<system.web>
...
<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" />
 <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
 <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
 <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
 <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
 <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
 <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />            
 <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>

在我的 Global.asax.cs 上

public static void RegisterRoutes(RouteCollection routes)
{   
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
...

對於 IIS 7+,您還需要填充 system.webServer 配置部分。看到這個問題

是在 MVC 中使用 ELMAH 的一種很好的方法,它不使用axd控制器和自定義ElmahActionResult.

引用自:https://stackoverflow.com/questions/2118248