2014-03-28 4 views
7

hinzugefügt wird, ich habe diese Konfiguration, die funktioniert und leitet die folgenden Fehler korrekthttperror iis Config wirft Ausnahme, wenn Standardpfad

<httpErrors errorMode="Custom" 
     existingResponse="Replace" 
     defaultResponseMode="ExecuteURL" > 
    <remove statusCode="403" /> 
    <remove statusCode="404" /> 
    <remove statusCode="500" /> 
    <error statusCode="403" responseMode="ExecuteURL" path="/Error/AccessDenied" /> 
    <error statusCode="404" responseMode="ExecuteURL" path="/Error/PageNotFound" /> 
    <error statusCode="500" responseMode="ExecuteURL" path="/Error/ApplicationError" /> 
</httpErrors> 

Aber wenn ich fügen Sie den folgenden Standardpfad zu versuchen, eine catch all

hinzufügen
<httpErrors errorMode="Custom" 
     existingResponse="Replace" 
     defaultResponseMode="ExecuteURL" 
     defaultPath="/Error/ApplicationError"> 

Der Server führt eine web.config Fehler

HTTP Error 500.19 - Internal Server Error 
The requested page cannot be accessed because the related configuration data for the page is invalid. 
Module  CustomErrorModule 

nun direkt diese Fortsetzung radicts die documentation on msdn

Jede Hilfe würde sehr geschätzt werden !!

+0

Diese Antwort hat mir geholfen, http://serverfault.com/a/53713/243181 Für IISExpress applicationHost.config kann an einem anderen Ort zu finden - http://stackoverflow.com/a/12946477/2164198 –

+0

@IvanSamygin : reparierte es nicht für mich. – Veverke

+0

Hat jemand es schon gelöst? Ich habe genau das gleiche Problem. Es ist, als ob defaultPath nicht funktioniert. – user3664916

Antwort

-1

Versuchen Sie defaultPath="~/Error/ApplicationError" mit ~.

+0

hat es nicht für mich behoben. – Veverke

8

Verwendung von DefaultPath Attribut verhindert Verwendung von Pfad Attribut in Ihrem Fehler Knoten. So unten Konfiguration arbeiten (aber natürlich wird es die gleiche Fehlerseite für alle HTTP-Fehler zeigen hier definiert):

<httpErrors errorMode="Custom" existingResponse="Replace" 
    defaultResponseMode="ExecuteURL" defaultPath="/Error/ApplicationError"> 
    <remove statusCode="403" /> 
    <remove statusCode="404" /> 
    <remove statusCode="500" /> 
    <error statusCode="403" responseMode="ExecuteURL" /> 
    <error statusCode="404" responseMode="ExecuteURL" /> 
    <error statusCode="500" responseMode="ExecuteURL" /> 
</httpErrors> 

Verwandte doc: https://msdn.microsoft.com/en-us/library/ms690576(v=vs.90).aspx

+1

Ich fürchte, es wird nicht funktionieren - es wird angezeigt "Fehlende erforderliche Attribut 'Pfad'", weil Sie das Pfadattribut für Ihre "Fehler" -Einträge nicht angegeben haben. Haben Sie Ihre Konfiguration versucht? Hat es funktioniert? Ich frage mich nur, weil ich auf IIS7 den Fehler bekomme, den ich gerade beschrieben habe. – user3664916

+0

Ja, ich habe diese Konfiguration mit der manuell geänderten Datei "web.config" in IIS 8.0 Express ausprobiert und es funktionierte zu dieser Zeit einwandfrei. (Das Attribut defaultPath weist das Pfadattribut intern für alle Fehlerknoten zu). Ich schätze, du bekommst diesen Fehler im IIS-Manager, der aus irgendeinem Grund (vielleicht Bug) verhindert diese Art der Konfiguration ... –

4

Sie können nicht außer Kraft setzen httperrors „DefaultPath“ -Attribut in IISExpress weil dieses Attribut gesperrt von applicationhost.config:

<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> 

Sie können mehr darüber lesen Sie hier: https://support.microsoft.com/en-us/kb/942055 Dieses Problem kann auftreten:

Wenn der angegebene Teil der IIS-Konfigurationsdatei unter eine höhere Konfigurationsebene gesperrt ist. Um dieses Problem zu beheben, entsperren Sie den angegebenen Abschnitt , oder verwenden Sie es nicht auf dieser Ebene. Weitere Informationen zur Konfigurationssperrung finden Sie unter , siehe How to Use Locking in IIS 7.0 Configuration.

+0

das scheint eigentlich nicht zu funktionieren, wie jetzt statt 500.19 web.config Fehler, ich bin Die Standard-IIS-Fehlerseite wird anstelle meiner benutzerdefinierten Seiten angezeigt. Bitte Hilfe. – ar27111994

+0

okay das hat funktioniert (die iis config einstellungen), ich hatte gerade existingResponse = "Auto" anstelle von existingResponse = "Replace". Meine schlechte, tut mir leid. – ar27111994