Sök…


Introduktion

Varje webbplats måste hantera fel. Du kan låta dina användare se lager 404 eller 500 felsidor som IIS raderar ut eller genom att använda Web.Config och en enkel kontroller kan du fånga dessa fel och leverera dina egna anpassade felsidor.

Grundläggande installation

Detta exempel kommer att täcka att skapa en anpassad felsida för 404 Page Not Found och 500 Server Error. Du kan utöka den här koden för att fånga alla felkoder du behöver.

web.config

Om du använder IIS7 och högre, ignorera <CustomError.. och använd <httpErrors... istället.

Lägg till följande i system.webServer noden:

<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>

Detta säger webbplatsen att rikta 404-fel till ~/error/notfound och 500-fel till ~/error/servererror . Det kommer också att bevara din begärda URL (tänk överföring snarare än omdirigera ) så användaren kommer aldrig att se URL ~/error/... -sidan.

Därefter behöver du en ny Error så ...

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

} 

Det viktigaste att notera här är Response.TrySkipIisCustomErrors = true; . Detta kommer att kringgå IIS och tvinga din felsida igenom.

Slutligen, skapa motsvarande NotFound och ServerError vyer och ServerError dem så att det är allt fint och smidigt med din webbplats design.

Hej presto - anpassade felsidor.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow