すべてのASP.NET MVCエラーにグローバル(ダム)エラーページを使用していますか?

StackOverflow https://stackoverflow.com/questions/1038843

質問

現在作業中のASP.NET MVCプロジェクトですべてのエラーを記録するようにELMAHをセットアップおよび構成しました。あまり知らなくてもよい小さなユーザーグループが使用するため、何らかの種類のエラー(404、InvalidOperation、Y2Kなど)が発生するたびに、ヘルプデスクに電話してきちんと座ることを指示する一般的なデフォルトエラービューを表示します。

ELMAHは正常に動作しています。ヘルプデスクのスタッフはこれを使用してエラーを診断し、必要に応じてチケットを記録/昇格します。私の問題は、グローバルエラーページを表示することです。 こちらを使用して、ELMAHと[HandleError]が適切に連携するようにします。

Web.configは次のように設定されています:

<customErrors mode="On" />

http:// application / Home / Index にアクセスすると、LINQエラーが発生します(シーケンスにはelements)その後、/ Shared / Error.aspxからの一般的なエラービューが表示されますが、 http:/にアクセスしようとすると/ application / Fake / Broken は404です。その後、通常のASP.NETを取得します

Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Fake/Broken

ただし、両方のエラーはELMAHによって完全に記録されます。

役に立ちましたか?

解決

一般的なエラーページを表示するだけの場合は、ページ自体を指定できます。

<customErrors mode="On" defaultRedirect="error.htm" />

これにより、すべての未処理の例外、ページが見つからない、などが&quot; error.htm&quot;を表示します。ただし、エラーコードについてさらに詳しく説明することもできます。

<customErrors mode="On">
  <error statusCode="404" redirect="notfound.htm"/>
</customErrors>

他のヒント

iis 7を使用している場合、これを追加する必要があるかもしれません

<system.webServer>

設定ファイルのセクション

<httpErrors errorMode="Custom" existingResponse="PassThrough" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top