Iteam
GitHub

IIS7 visar felsida innan du hinner logga felen

I nästan alla de projekt jag jobbar med finns det en central plats där alla fel loggas, vanligtvis genom att lyssna på Application_Error i global.asax.

En potentiellt otrevlig nyhet i IIS 7 för websajter som körs i Integration Mode är att eventuella fel fångas upp av IIS som returnerar en egen felsida istället för att skicka dem vidare till ASP.NET-motorn. Men bara om man satt CustomErrors i web.config till On eller RemoteOnly och har en felsida definierad i IIS7, vilket du har per default.

I de fall du t ex vill logga alla fel eller hantera dem på annat sätt innan felsidan visas för användaren kan detta bli ett problem när sajten läggs ut i en miljö där CustomErrors ska sättas till On eller RemoteOnly.

Som tur är kom en förändring på System.Web.HttpResponse i .NET 3.5! Den ”nya” egenskapen är TrySkipIisCustomErrors och ska sättas till true för att låta även IIS 7 skicka vidare felen till ASP.NET så att du kan hantera dem som du vill.

Johanna Gustafsson
2011-03-02