2009-12-11 11 views
10

カスタムエラーページが表示されません。HttpError私はweb.configファイルでこれを持っている

<httpErrors errorMode="Custom"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <remove statusCode="500" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/Error/NotFound.aspx" responseMode="Redirect" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/Error/ServerError.aspx" responseMode="Redirect" /> 
</httpErrors> 

しかし、IISはまだエラーページに組み込まれて表示されます。

アイデア?

答えて

5

これは私がそれを使用していますが、それは私に動作しますが、それはsubStatusCodeディレクティブとExecuteURLを除きかなり似てどのように見えるかです。


<httpErrors> 
    <!--Remove inherited 500 error page setting --> 
    <remove statusCode='500' subStatusCode='-1'/> 
    <!--Override the inherited 500 error page setting with the 'My500.html' as its path--> 
    <error statusCode='500' subStatusCode='-1' prefixLanguageFilePath='' path='/My500.html' responseMode='ExecuteURL'/> 
</httpErrors> 
2

サーバーの相対URLを使用しているようですが、responseMode="ExecuteURL"MSDNに設定してみてください。

ExecuteURL

カスタムエラーのパス 属性で指定された(例えば、 .aspファイル)動的コンテンツを提供します。 responseModeがExecuteURLに設定されている場合、 パスの値は、サーバーの相対URL にする必要があります。数値は、リダイレクト

パスで指定されたURL が は、カスタムエラーファイルが含まれていることを属性にクライアントブラウザをリダイレクトします。1.

です。 responseModeがRedirectに設定されている場合、 パスの値は絶対URLである必要があります。 数値は2

19

また、このようなhttpErrors要素でexistingReponse属性を設定する必要があります。

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <clear /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" /> 
</httpErrors> 
+0

これは、最新のOrchard 1.4の問題を引き起こしていました。 – Sarkie

+0

@Kiquenet http://www.iis.net/configreference/system.webserver/httperrors わかりませんが、自動で問題を解決しました。 – Ernesto

+0

*** ErrorHandler.aspx ***のソースコードは何ですか? – Kiquenet

0

IISでエラーページのリダイレクトの設定の適切な機能を持っていることを確認してください。これを確認するには、IISマネージャの[エラーページ]ページで[機能設定の編集]をクリックし、Webサーバー自体からリダイレクトをテストする場合は、カスタムエラーページが選択されていることを確認します。リモートでテストしている場合は、ローカルリクエストの詳細エラーとリモートリクエストのカスタムエラーページがチェックされます。これは私のテスト環境のデフォルトオプションのようです。

3

ExecuteURLを使用している場合、カスタムエラーページのパスは、アプリケーション自体と同じアプリケーションプール内にある必要があります。

アーキテクチャ上の理由から、IIS 7.0は、同じアプリケーションプール内にあるURLのみを実行できます。リダイレクト機能を使用して、別のアプリケーションプールでカスタムエラーを実行します。

関連する問題