ドキュメントには
existingResponse="PassThrough"
既存の応答が存在する場合、応答をそのままにします。 http://www.iis.net/configreference/system.webserver/httperrors#005
しかし、「既存の応答が存在する」とはどういう意味ですか?
例えば。 customErrors
ハンドラーがASP.NET応答を抑制したいので、IISは応答が存在しないと考えます。どうすればよいですか?
スキーマからの3つの可能な値があります。
<attribute name="existingResponse" type="enum" defaultValue="Auto">
<enum name="Auto" value="0" />
<enum name="Replace" value="1" />
<enum name="PassThrough" value="2" />
</attribute>
大体、これが私がこれをどのように理解するかです:
PassThrough-応答がある場合、既存の応答をそのままにします。アプリケーションロジックが何も返さない可能性があります。その場合、ここで定義されたエラーページが使用されます。
自動-asp.netで設定した場合を除き、このノードで定義されているIISエラーページを使用します。
Response.TrySkipIisCustomErrors = true;
それを行った場合、コードからの応答が使用されます。
置換-開発者がTrySkipIisCustomErrors
を設定していても、常にIISエラーページを使用します。
最後のオプションはあなたが望むもののようです。
編集:
考慮してください:
existingResponse="PassThrough"
存在しないasp.netページを開こうとすると、以下が表示されます。
リソースがそこになくても、ランタイムは応答を提供し、ブラウザに渡されます。
次に、存在しないhtmlページを開いてみてください。今度は404ステータスは表示されますが、空のページが表示されます。
に変更:
existingResponse="Auto"
欠落しているasp.netページにはまだasp.netエラーページが表示されますが、欠落しているhtmlページの場合、IIS one:
要約すると、異なるexistingResponse
値を持つhtmlおよびaspxページが見つからない場合、異なるエラーページが表示されます。
.html-404 .aspx-404 .aspx-500
--------------------------------------------------
Auto IIS asp.net asp.net
PassThrough - asp.net asp.net
Replace IIS IIS IIS