2012-05-14 77 views
0

任何人都可以提出爲什麼elmah錯誤頁面沒有顯示,並且出現404錯誤。我正在使用IISExpress。我相信我有這個工作,不記得做任何改變web.config來阻止這個工作。Elmah.axd - 在IIS Express和IIS上獲取錯誤404

我的配置文件:

<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> 
    <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.webServer> 
<modules runAllManagedModulesForAllRequests="true"> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
</modules> 
</system.webServer> 
<elmah> 
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" /> 
</elmah> 
</configuration> 

回答

-2

不知道這是否有幫助,但你有一個錯誤頁面設置和配置你的web.config?

這是我們已經配置:

<customErrors mode="RemoteOnly" defaultRedirect="ErrorPage.htm"></customErrors> 

有一個在我們的應用程序的主目錄伴隨errorpage.htm文件。

+0

這個答案與ELMAH並不特別相關。 –

0

你還在忽略路由中的Elmad.axd嗎?這可能是使用MVC時的問題。

routes.IgnoreRoute("elmah.axd"); 
+0

是的,我忽略了這條路線。 – jaffa

7

從外觀上看,我相信你的配置是錯誤的。您在<system.web />的上下文之外定義<httpModules /><httpHandlers />。此外,您還需要在<system.webServer />中爲IIS 7+支持定義處理程序。試試這個:

<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> 
    <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> 
     <handlers> 
      <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" preCondition="integratedMode" type="Elmah.ErrorLogPageFactory, Elmah" /> 
     </handlers> 
     <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> 
    </system.webServer> 
    <elmah> 
     <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" /> 
    </elmah> 
</configuration> 

檢查this link爲1.2 ELMAH有效的Web.config的例子。

+0

此錯誤在IIS Express上也可見,但可以通過查看項目屬性 - 管理管道模式設置(設置爲經典)來解決。管理管道模式設置爲「集成」時,需要在IIS7上部署System.webServer設置。欲瞭解更多信息,請看這篇文章:http://www.ozkary.com/2015/12/404-error-axd-http-handler.html – ozkary