1

elmah エラー ページが表示されず、エラー 404 が表示される理由を教えてください。IISExpress を使用しています。私はこれが機能していたと確信しており、これが機能しないようにするために 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="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>
4

3 に答える 3

8

見た目からして、設定が間違っていると思います。のコンテキスト外でを定義<httpModules />しています。また、 IIS 7 以降のサポートのためにハンドラーを定義する必要があります。代わりにこれを試してください:<httpHandlers /><system.web /><system.webServer />

<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>

ELMAH 1.2 の有効な Web.config の例については、このリンクを確認してください。

于 2012-05-14T18:23:29.370 に答える
0

ルーティングで Elmad.axd をまだ無視していますか? これは、MVC を使用する場合に問題になる可能性があります。

routes.IgnoreRoute("elmah.axd");
于 2012-05-14T18:21:14.717 に答える
-2

これが役立つかどうかはわかりませんが、web.config でエラー ページをセットアップして構成していますか?

これは私たちが設定したものです:

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

アプリのメイン ディレクトリには、付随する errorpage.htm ファイルがあります。

于 2012-05-14T18:19:17.047 に答える