1

作業中のASP.NETMVCプロジェクトですべてのエラーをログに記録するようにELMAHをセットアップおよび構成しました。これは、あまり知る必要のない少数のユーザーグループによって使用されるため、何らかのエラー(404、InvalidOperation、Y2K ...何か!)がある場合は常に一般的なデフォルトのエラービューを表示したいと思います。ヘルプデスクに電話してしっかりと座る手順が記載されています。

ELMAHは正常に稼働しており、ヘルプデスクスタッフがエラーを診断し、必要に応じてチケットをログに記録/昇格するために使用します。私の問題は、グローバルエラーページを表示することです。ELMAHと[HandleError]がうまく連携するように、ここに掲載されているソリューションを使用しています。

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

<customErrors mode="On" />

LINQエラーがある(シーケンスに要素が含まれていない)http:// application / Home / Indexにアクセスすると、/ Shared / Error.aspxからの一般的なエラービューが表示されますが、 http://にアクセスしようとすると404であるapplication/Fake / Brokenの場合、通常の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によって完全にログに記録されます。

4

2 に答える 2

2

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

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

これにより、すべての未処理の例外、見つからないページなどに「error.htm」が表示されます。ただし、エラーコードについてより具体的にすることができます:

<customErrors mode="On">
  <error statusCode="404" redirect="notfound.htm"/>
</customErrors>
于 2009-11-09T14:14:06.933 に答える
0

iis 7 を使用している場合は、これを

<system.webServer>

構成ファイルのセクション

<httpErrors errorMode="Custom" existingResponse="PassThrough" />
于 2009-06-24T16:12:06.547 に答える