Suche…


Einführung

Jede Website muss mit Fehlern umgehen. Sie könnten Ihren Benutzern die Anzeige der 404- oder 500-Fehlerseiten ermöglichen, die von IIS ausgegeben werden. Mit Web.Config und einem einfachen Controller können Sie diese Fehler erfassen und Ihre eigenen Fehlerseiten bereitstellen.

Grundeinstellung

In diesem Beispiel wird das Erstellen einer benutzerdefinierten Fehlerseite für die Seite "404-Seite nicht gefunden" und "500 Server-Fehler" beschrieben. Sie können diesen Code erweitern, um den erforderlichen Fehlercode zu erfassen.

Web.Config

Wenn Sie IIS7 oder höher verwenden, ignorieren Sie den Knoten <CustomError.. und verwenden <httpErrors... stattdessen <httpErrors...

Fügen Sie im Knoten system.webServer Folgendes system.webServer :

<httpErrors errorMode="Custom" existingResponse="Replace">
    <remove statusCode="404" />
    <remove statusCode="500" />
    <error statusCode="404" path="/error/notfound" responseMode="ExecuteURL" />
    <error statusCode="500" path="/error/servererror" responseMode="ExecuteURL" />
 </httpErrors>

Dies weist die Site an, alle 404-Fehler an ~/error/notfound und 500 Fehler an ~/error/servererror . Die angeforderte URL bleibt erhalten (Think Transfer statt Redirect ), sodass der Benutzer niemals die URL der ~/error/... Seite sehen kann.

Als nächstes benötigen Sie einen neuen Error Controller.

public class ErrorController : Controller
{
    public ActionResult servererror()
    {
        Response.TrySkipIisCustomErrors = true;
        Response.StatusCode = (int)HttpStatusCode.InternalServerError;
        return View();
    }

    public ActionResult notfound()
    {
        Response.TrySkipIisCustomErrors = true;
        Response.StatusCode = (int)HttpStatusCode.NotFound;
        return View();
    }

} 

Der Schlüssel, der hier zu beachten ist, ist die Response.TrySkipIisCustomErrors = true; . Dadurch wird IIS umgangen und Ihre Fehlerseite wird durchlaufen.

Erstellen Sie schließlich die entsprechenden NotFound und ServerError Ansichten, und gestalten Sie sie so, dass alles schön und nahtlos in das Design Ihrer Site integriert ist.

Hey presto - benutzerdefinierte Fehlerseiten.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow