2 Stimmen

Benutzerdefinierte Fehlereinstellung wird für verweigerte Standorte in der web.config ignoriert

In einer ASP.Net 4 und MVC2 Anwendung haben wir einen merkwürdigen Konfigurationsfehler.

Die web.config sieht etwa so aus:

<configuration>
    <location path="blockedpath">
        <system.web>
            <authorization>
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
    <system.web>
        <customErrors mode="On" defaultRedirect="~/Error.aspx" />
    </system.web>
</configuration>

Der Besuch des gesperrten Ortes wird korrekt verweigert, führt aber zu einer ausführlichen Fehlermeldung von IIS, die wir nicht wollen.

Warum wird der konfigurierte benutzerdefinierte Fehler nicht angezeigt?

Können wir steuern, welche Seite angezeigt werden soll, wenn der Zugriff auf die Seite durch die Konfiguration verweigert wird?

1voto

Martin Buberl Punkte 43442

Nach Angaben von este IIS7 versucht, hilfreich zu sein, und stiehlt gerne Ihre benutzerdefinierten Fehlerseiten und ersetzt sie durch seine eigenen.

Öffnen Sie die Fehlerseiten Funktion im IIS und klicken Sie auf Funktionseinstellungen bearbeiten auf der rechten Seite des Menüs. Stellen Sie die Option "Detaillierte Fehler damit IIS alle Fehler durchlässt, die Sie von ASP.NET servieren.

0voto

Kev Punkte 115293

Wenn es sich um IIS7 handelt, dann sieht es so aus, als ob IIS die Antwort missbraucht. Versuchen Sie dies:

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X