2

http://localhost:8004/elmah.axdを参照すると、アプリケーションで発生したエラーが表示されますが、404 エラーも生成されます。この 404 エラーを停止するにはどうすればよいですか?

404 エラーの詳細は次のとおりです。

    System.Web.HttpException (0x80004005): ファイルが存在しません。
   System.Web.StaticFileHandler.GetFileInfo (文字列 virtualPathWithPathInfo、文字列 physicalPath、HttpResponse 応答) で
   System.Web.StaticFileHandler.ProcessRequestInternal (HttpContext コンテキスト、文字列 overrideVirtualPath) で
   System.Web.DefaultHttpHandler.BeginProcessRequest (HttpContext コンテキスト、AsyncCallback コールバック、オブジェクトの状態) で
   System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() で
   System.Web.HttpApplication.ExecuteStep (IExecutionStep ステップ、ブール値 & completedSynchronously) で
    

私のWeb設定ファイルは次のようなものです:

    <構成>
  < 構成セクション >
    < sectionGroup name="elmah" >
      < section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
      < section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
    </ sectionGroup >
  </ configSections >

  <system.web>
        < コンパイル debug="true" targetFramework="4.0" />

        < httpHandlers >
          < add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
        </ httpHandler >

        < httpモジュール>
          < add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
        </ httpモジュール>

        < 認証モード="フォーム" >
          < フォーム loginUrl="~/Account/Login.aspx" タイムアウト="2880" />
        </ 認証 >
    ..........
    ..........
  </ system.web >

  < system.webServer >
        < モジュール runAllManagedModulesForAllRequests="true" />
        < 検証 validateIntegratedModeConfiguration="false" />
        <モジュール>
          < add name="Elmah.ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
        </ モジュール >
        < ハンドラー >
          < add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
        </ ハンドラー >
  </ system.webServer >

  <エルマー>
        < セキュリティ allowRemoteAccess="0" />
        < errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/ErrorLogs" />
  </ エルマ >

</構成>

4

2 に答える 2

4

この 404 エラーを停止するにはどうすればよいですか?

/favicon.icoWeb アプリケーションに を追加します。Google Chrome などの最新のブラウザーが URL を要求すると、このページに関連付けられたファビコン/favicon.icoを表示するために、追加の HTTP 要求が に送信されます。サイトのルートにそのようなファイルがない場合、Web サーバーは 404 を返します。これは、Elmah エラー ログで観察されているものです。

たとえばelmah.axd、Internet Explorer でブラウズしてみてください。このような 404 エラーは表示されません。

于 2012-06-14T06:07:37.077 に答える
2

または、web.configファイルのELMAH設定セクションに以下を追加して、favicon.icoリクエストを無視することもできます。

<elmah>

 ...

<errorFilter>
  <!--    Do not capture 404 errors for favicon.ico file requests -->
  <test>
    <and>
      <equal binding="HttpStatusCode" value="404" type="Int32" />
      <regex binding="Context.Request.ServerVariables['URL']" pattern="/favicon.ico(\z|\?)" />
    </and>
  </test>
</errorFilter>

...

</elmah>
于 2012-06-29T15:08:09.143 に答える