Zoeken…


Invoering

Elke website moet fouten verwerken. U kunt uw gebruikers de 404- of 500-foutpagina's laten zien die IIS uitschrijft of met behulp van Web.Config en een eenvoudige controller kunt u deze fouten vastleggen en uw eigen aangepaste foutpagina's afleveren.

Basic Setup

In dit voorbeeld wordt het maken van een aangepaste foutpagina voor 404 pagina niet gevonden en 500 serverfout behandeld. U kunt deze code uitbreiden om elke gewenste foutcode vast te leggen.

Web.Config

Als u IIS7 en hoger gebruikt, negeer dan het knooppunt <CustomError.. en gebruik in plaats daarvan <httpErrors...

Voeg het volgende toe aan het knooppunt 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>

Dit vertelt de site om 404-fouten te ~/error/notfound naar ~/error/notfound en elke 500-fouten naar ~/error/servererror . Het zal ook uw gevraagde URL behouden (denk aan overdracht in plaats van omleiden ) zodat de gebruiker nooit de URL van de ~/error/... -pagina zal zien.

Vervolgens hebt u een nieuwe Error nodig, dus ...

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();
    }

} 

Het belangrijkste om hier op te merken is de Response.TrySkipIisCustomErrors = true; . Dit omzeilt IIS en dwingt je foutpagina erdoorheen.

Maak ten slotte de bijbehorende NotFound en ServerError weergaven en style ze zodat het allemaal mooi en naadloos aansluit op het ontwerp van uw site.

Hey presto - aangepaste foutpagina's.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow