12

asp.net mvc アプリでカスタム アクション フィルターを使用して、http ステータス コード 422 と検証エラーの json リスト (基本的にシリアル化されたモデル状態辞書) をクライアントに返します。クライアントでは、jQuery のグローバル ajaxError ハンドラーでそれを処理します。

これはすべて開発環境で機能しますが、私の問題は、カスタム エラー モードがオンの場合 ( <system.webServer>/<httpErrors errorMode="Custom">)、IIS が応答 (json) を「カスタム エラー モジュールはこのエラーを認識しません」というテキストに置き換えます。

ステータス コードが 422 の場合、元の応答をパススルーするように IIS を適切に構成するのに苦労しています。似たようなことをした人はいますか?

4

3 に答える 3

19

Web サーバーが既存の応答を通過するように構成されている場合、json コンテンツがブラウザーに返されます。

<system.webServer>
  <httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough">
  </httpErrors>
</system.webServer>

MSDN: httpErrors 要素 [IIS 設定スキーマ]

于 2012-10-16T11:30:19.150 に答える
0

ここに画像の説明を入力

IIS 7.5 に対して次の設定を行います。これは私にとっては問題なく機能します。ここで最も重要なことは、existingResponse="Replace".

<httpErrors errorMode="DetailedLocalOnly" existingResponse="Replace" detailedMoreInformationLink="http://YouLink" lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
            <error statusCode="401" prefixLanguageFilePath="" path="C:\path\to\401.htm" responseMode="File" />
            <error statusCode="403" prefixLanguageFilePath="" path="C:\path\to\403.htm" responseMode="File" />
            <error statusCode="404" prefixLanguageFilePath="" path="C:\path\to\404.htm" responseMode="File" />
            <error statusCode="405" prefixLanguageFilePath="" path="C:\path\to\405.htm" responseMode="File" />
            <error statusCode="406" prefixLanguageFilePath="" path="C:\path\to\406.htm" responseMode="File" />
            <error statusCode="412" prefixLanguageFilePath="" path="C:\path\to\412.htm" responseMode="File" />
            <error statusCode="500" prefixLanguageFilePath="" path="C:\path\to\500.htm" responseMode="File" />
            <error statusCode="501" prefixLanguageFilePath="" path="C:\path\to\501.htm" responseMode="File" />
            <error statusCode="502" prefixLanguageFilePath="" path="C:\path\to\502.htm" responseMode="File" />
            <error statusCode="400" prefixLanguageFilePath="" path="C:\path\to\400.htm" responseMode="File" />
</httpErrors>
于 2019-02-24T13:44:43.533 に答える