2009-12-11 5 views
10

ich dies in der web.config haben:httperror nicht benutzerdefinierte Fehlerseiten zeigen

<httpErrors errorMode="Custom"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <remove statusCode="500" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/Error/NotFound.aspx" responseMode="Redirect" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/Error/ServerError.aspx" responseMode="Redirect" /> 
</httpErrors> 

Aber IIS zeigt immer noch die Fehlerseite gebaut.

Irgendwelche Ideen?

Antwort

5

Dies ist, wie ich es bin mit und es funktioniert für mich, es sieht ziemlich ähnlich mit Ausnahme der subStatusCode Richtlinien und der ExecuteURL.


<httpErrors> 
    <!--Remove inherited 500 error page setting --> 
    <remove statusCode='500' subStatusCode='-1'/> 
    <!--Override the inherited 500 error page setting with the 'My500.html' as its path--> 
    <error statusCode='500' subStatusCode='-1' prefixLanguageFilePath='' path='/My500.html' responseMode='ExecuteURL'/> 
</httpErrors> 
2

Es scheint, als ob Sie eine relative Server-URL verwenden, versuchen Sie responseMode="ExecuteURL", von MSDN.

ExecuteURL

dynamischen Inhalt Bedient (beispielsweise eine ASP-Datei), die im Pfad Attribut für die individuellen Fehler. Wenn responseMode auf ExecuteURL festgelegt ist, muss der Pfadpfad eine relative Serveradresse sein. Der numerische Wert ist 1.

Redirect

Leitet Client-Browser zu einer der URL im Pfad angegebene Attribut, das die benutzerdefinierte Fehlerdatei enthält. Wenn responseMode auf Umleiten eingestellt ist, muss der Pfadpfad eine absolute URL sein. Der numerische Wert ist 2.

19

Möglicherweise müssen Sie auch die existingReponse Attribut im httperrors Element wie folgt einstellen:

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <clear /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" /> 
</httpErrors> 
+0

Dies war, was das Problem mit der neuesten Orchard 1.4 verursacht, Prost. – Sarkie

+0

@Kiquenet http://www.iis.net/configreference/system.webserver/httperrors Nicht sicher, aber Auto löste mein Problem. – Ernesto

+0

Was ist Quellcode für *** ErrorHandler.aspx ***? – Kiquenet

0

Stellen Sie sicher, dass Sie die richtige Funktion für die Fehlerseite Umleitung in IIS Einstellung haben. Um dies zu überprüfen, klicken Sie auf der Fehlerseite im IIS-Manager auf Featureeinstellungen bearbeiten und stellen Sie sicher, dass Benutzerdefinierte Fehlerseiten aktiviert sind, wenn Sie die Weiterleitungen vom Webserver selbst testen. Wenn Sie remote testen, können Sie lassen. Detaillierte Fehler für lokale Anforderungen und benutzerdefinierte Fehlerseiten für Remoteanforderungen ist aktiviert. Dies scheint die Standardoption in meiner Testumgebung zu sein.

3

Wenn Sie ExecuteURL verwenden, muss sich der Pfad der benutzerdefinierten Fehlerseite im selben Anwendungspool wie die Anwendung selbst befinden.

Aus architektonischen Gründen kann IIS 7.0 die URL nur ausführen, wenn sie sich im selben Anwendungspool befindet. Verwenden Sie die Umleitungsfunktion, um einen benutzerdefinierten Fehler in einem anderen Anwendungspool auszuführen.

Verwandte Themen