2010-12-17 7 views
2

Ich entwickle eine Web-Anwendung mit Umbraco. Ich erstelle einen Inhalt mit dem Namen PageNotFound und im Abschnitt Fehler der Datei umbracoSettings.config stelle ich die Knoten-ID für 404 error404. Das Problem besteht darin, dass IIS bei IIS 7 immer nach dem Abschnitt HttpErrors in web.config sucht und nicht auf umbracoSettings.config achtet.Einstellung errorPage in Umbraco

Was soll ich tun?

Antwort

16

In web.config (system.webServer Abschnitt) können Sie die Website sagen, all die Fehler durch die Anwendung der Handhabung passieren:

<httpErrors existingResponse="PassThrough" /> 

Dies hat den Nachteil, dass Umbraco etwas nicht verarbeitet aber ASPX-Seiten, die nicht gefunden werden.

Sie könnten es besser machen, indem etwas wie dies stattdessen tun:

<httpErrors errorMode="Custom"> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/non-existing-page.aspx" responseMode="ExecuteURL" /> 
</httpErrors> 

Die nicht vorhandene-page.aspx noch nicht in Umbraco nicht vorhanden ist, so dass es eine 404-Trigger (weil es die aspx Erweiterung) und .. presto: Umbraco behandelt die 404 perfekt!

+0

Danke hinzugefügt. Aber das eigentliche Problem ist, dass ich Ihren zweiten Vorschlag gemacht habe, aber auf meiner "Seite nicht gefunden" -Seite, die ich definiert habe, lade ich einige Blöcke mit XSLT, die beim direkten Durchblättern dieser Seite erscheinen, aber wenn die Seite anzeigt, wenn ich ungültige URL eingib , dieser Block erscheint nicht! – Nami

+0

Ich weiß nicht, warum das so ist, scheint die Logik in Ihrem XSLT dann falsch zu sein. Werden sie angezeigt, wenn Sie direkt auf yoursite.com/none-existing-page.aspx gehen? – sebastiaan

+0

ja sie erscheinen !!!!! – Nami

3

Die 500 Fehler hat nicht funktioniert, bis ich

existingResponse="Replace" 

wie die

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <remove statusCode="500" subStatusCode="-1" /> 
    <error statusCode="404" path="/non-existing-page.aspx" responseMode="ExecuteURL" /> 
    <error statusCode="500" path="error.html" responseMode="File" /> 
</httpErrors> 
+2

Nur ein kleiner Fehler, das Pfadattribut für den Fehler 500 ist ein physischer Pfad. Wenn Sie die Datei error.html in einem Views-Ordner hätten, würden Sie path = "views \ error.html" verwenden (beachten Sie den Backslash). –