Es gibt drei mögliche Werte, aus dem Schema:
<attribute name="existingResponse" type="enum" defaultValue="Auto">
<enum name="Auto" value="0" />
<enum name="Replace" value="1" />
<enum name="PassThrough" value="2" />
</attribute>
Grob gesagt, hier ist, wie ich das verstehen:
Pass-Through - verlässt die vorhandene Reaktion allein, solange es ist . Es ist möglich, dass Ihre Anwendungslogik nichts zurückgibt. In diesem Fall wird die hier definierte Fehlerseite verwendet.
Auto - verwendet die IIS-Fehlerseiten als Ausnahme in diesem Knoten definiert, wenn in asp.net Sie festgelegt haben:
Response.TrySkipIisCustomErrors = true;
, wenn Sie das getan haben, ist die Antwort von Ihrem Code verwendet.
Ersetzen - verwendet immer die IIS-Fehlerseiten, auch wenn der Entwickler TrySkipIisCustomErrors
festgelegt hat.
Die letzte Option scheint die zu sein, die Sie wollen.
Edit:
Bedenken Sie:
existingResponse="PassThrough"
versuchen nun eine nicht vorhandene asp.net-Seite zu öffnen, werden Sie sehen:
Obwohl die Ressource nicht da war, Die Laufzeit hat eine Antwort geliefert, sie wird an den Browser weitergeleitet.
Versuchen Sie nun, eine nicht vorhandene HTML-Seite zu öffnen. Diesmal erhalten wir immer noch einen 404-Status, aber eine leere Seite.
Wechsel zu:
existingResponse="Auto"
die fehlende asp.net Seite zeigt immer noch die asp.Netto-Fehlerseite, aber für die fehlende HTML-Seite erhalten wir jetzt die IIS ein:
Also, zusammenfassend: wenn bei fehlenden HTML und aspx Seiten mit verschiedenen existingResponse
Werten suchen, wir verschiedene Fehlerseiten erhalten:
.html-404 .aspx-404 .aspx-500
--------------------------------------------------
Auto IIS asp.net asp.net
PassThrough - asp.net asp.net
Replace IIS IIS IIS
Siehe http://serverfault.com/a/124074/87017 – Pacerier