web-dev-qa-db-ja.com

ASP.Net Webサイトでのカスタムエラーページの実装

ASP.Net Webサイトがあり、カスタムエラーページを使用したい。私はweb.configに次のコードを入れました

<customErrors mode="On" defaultRedirect="~/error.aspx">
    <error statusCode="404" redirect="~/error.aspx" />
</customErrors>

問題は、存在しないURLに移動すると、IIS Manager。

質問:作成したerror.aspxページを使用するにはどうすればよいですか? IIS Managerの設定がweb.configをオーバーライドするのはなぜですか?

19
Yeodave

ほとんど同じ方法でこの方法を試してみてください。しかし、それが私がやったことであり、働いています。

<configuration>
    <system.web>
       <customErrors mode="On" defaultRedirect="apperror.aspx">
          <error statusCode="404" redirect="404.aspx" />
          <error statusCode="500" redirect="500.aspx" />
       </customErrors>
    </system.web>
</configuration> 

または、必要に応じて、404エラーページをIIS設定から変更してみてください。

27
Hrushikesh

ASP.NETサイトのカスタムエラーページを構成するには、2つの方法があります。

  1. インターネットインフォメーションサービス(IIS)マネージャー(GUI)
  2. web.configファイル

この記事では、それぞれの実行方法について説明します。

error.aspxページが表示されない理由は、web.configにエラーがあるためかもしれません。代わりにこれを試してください:

<configuration>
   <system.web>
      <customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
         <error statusCode="404" redirect="error.aspx"/>
      </customErrors>
   </system.web>
</configuration>

Error Pages inIISマネージャー-機能の委任Read/Writeに設定されます。

IIS Manager: Feature Delegation panel

また、この回答はweb.configファイルの構成に役立つ場合があります。

7
JohnB
<customErrors defaultRedirect="~/404.aspx" mode="On">
    <error statusCode="404" redirect="~/404.aspx"/>
</customErrors>

上記のコードは、ファイル拡張子が既知の場合(.html、.aspxなど)の「Page Not Found Error-404」のみを対象としています。

そのほかに、未知の拡張子または正しくない拡張子の顧客エラーも設定しました。

.aspwxまたは.vivaldoweb.confighttperrors設定を追加する必要があります

<httpErrors  errorMode="Custom"> 
       <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx"         responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>

<system.webServer></system.webServer>内にある必要があります

1
RASKOLNIKOV
<system.webServer>     
<httpErrors errorMode="DetailedLocalOnly">
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
    </httpErrors>
</system.webServer>
0
Tommaso

それはあなたの終了タグのスペルミスですか?

</CustomErrors> instead of </CustomError>?
0
Siv