2

これと同様の質問が StackOverflow や他のサイトで多数見られますが、私が経験している問題を解決するものは何もありません。

ASP.NET エラーに対して 500 ステータス コードとカスタム エラー ページ (静的 HTML ファイル) を返すようにサイトを構成しようとしていますが、通常は customErrors が "Off" に設定されている場合は 500 を返し、ページに対しては 404 ステータス コードを返します。システムが見つからないと報告したこと (404 ページは IIS によって設定された静的ページではなく、CMS システムによって生成されたものです)。

途中ですが、ちょっとした壁にぶち当たりました。

現在、システムが 404 ステータス コードを含むページを返す場合、正しい 404 ステータス コードを返すことができますが、ASP.NET サーバー エラーに対して 500 ステータス コードを返すことができなくなりました。Response.TrySkipIisCustomErrors = true を設定することでこれを管理しました。ただし、私の 500 エラーはより複雑であることがわかっています。web.config から customErrors 構成セクションを削除すると、500 エラーが発生しますが、これは醜い ASP.NET YSOD です。httpErrors構成セクションにどのような設定を使用しても、IIS GUIを介して何を設定しても、IISを使用してカスタムページを指すようにこれを取得できないようです。customErrors セクションを再度追加すると、期待どおりにカスタム エラー ページが表示されますが、200 または 302 エラーが発生します (redirectMode 属性の値によって異なります)。

誰でもアイデアはありますか?

httpErrors 構成セクションに関しては、これまでに次のことを試しました。

errorMode を「Custom」に設定し、statusCode が「500」で、subStatusCode が「-1」のエラーの静的コンテンツを指定する (最初に既存の 500 エラーを削除する) errorMode を「Detailed」に設定し、エラーの静的コンテンツを「500」の statusCode と「-1」の subStatusCode (最初に既存の 500 エラーを削除) 上記の両方の構成オプションに existingResponse="PassThrough" を設定します。

4

1 に答える 1

0

あなたはあなたがしなければならないことを超えて進んでいるようです、それは私があなたを正しく理解している場合です。 ここに良いリンクがあります

Application_Error必要なのは、global.asaxイベントを処理することのようです。このようにして、とにかくそれを処理することができ、その醜いasp.netエラー画面は表示されません。私が作成するすべてのWebアプリは、エラーを処理するためにそこにコードを入れて、ユーザーがフォーマットされていない「爆発」を目にしないようにします。

于 2011-11-30T15:24:43.387 に答える