Verhindern, dass IIS 7.5 Standardfehlerseiten mit der Datei web.config anzeigt

8

Ich versuche, meiner Webanwendung benutzerdefinierte Fehlerseiten hinzuzufügen. Bis jetzt habe ich das zu meiner web.config Datei unter dem Element hinzugefügt:

%Vor%

Dies funktioniert gut bei Fehlern, die .NET beispielsweise mit einer URL, die die Erweiterung .aspx enthält, berührt. Ich möchte jedoch auch benutzerdefinierte Fehler für eine URL wie www.example.com/dasda

anzeigen

Derzeit, wenn ich eine Seite wie das obige IIS 7.5 anfordere, wird eine eigene Fehlermeldung angezeigt. Ich habe dies unter dem Element hinzugefügt:

%Vor%

Ich dachte, dass dies dazu führen würde, dass IIS eine benutzerdefinierte Fehlerseite statt der Standardseite anzeigt, aber das scheint nicht der Fall zu sein.

Ich bin mir bewusst, dass ich eine benutzerdefinierte Fehlerseite in IIS selbst einstellen kann, aber eine ideale Lösung für meine Situation wäre, dies in der web.config konfigurierbar zu machen.

Ich habe versucht, dies auf meinen benutzerdefinierten Fehlerseiten im Page_Load-Ereignis wie vorgeschlagen hinzuzufügen hier :

%Vor%

Es hat jedoch nicht verhindert, dass die standardmäßige IIS-Seite anstelle meiner benutzerdefinierten Fehlerseite angezeigt wurde. Ich habe auch versucht, was hier empfohlen wird:

%Vor%

Aber das hat auch nicht funktioniert.

Gibt es eine Möglichkeit, zu verhindern, dass IIS Standardfehlerseiten anzeigt, indem Sie Einstellungen in der Datei web.config konfigurieren?

    
Aesir 13.07.2011, 10:39
quelle

2 Antworten

14

Das Problem, auf das ich stieß, war, dass das Attribut errorMode standardmäßig die folgenden Optionen aufweist: "DetailedLocalOnly", "Custom" oder "Detailed".

Wenn das errorMode-Attribut nicht angegeben wird, wird DefaultLocalOnly verwendet ( ref ) . Das heißt, ich hätte den angezeigten benutzerdefinierten Fehler nicht gesehen.

Die Konfigurationseinstellungen, die funktionierten, waren:

%Vor%

Der errorMode="Benutzerdefiniert" ist praktisch, um zu testen, ob die benutzerdefinierten Seiten korrekt funktionieren, ist aber wahrscheinlich hilfreicher, wenn sie weggelassen oder explizit für Fehlerbehebungszwecke auf errorMode="DetailedLocalOnly" gesetzt wird.

    
Aesir 13.07.2011, 22:31
quelle
0

Ich denke, Sie müssen IIS zwingen, das CustomErrorModule für jede vom Benutzer angeforderte Ressource zu verwenden. Versuchen Sie, das Folgende zu Ihrer Webkonfiguration hinzuzufügen

%Vor%

Sehen Sie sich auch den folgenden Link an

Ссылка

    
Massimiliano Peluso 13.07.2011 11:20
quelle