Ik ben bezig met het afhandelen van fouten voor een ASP.NET webapplicatie. Nu blijkt dat foutafhandeling op verschillende niveaus kan plaatsvinden:
-code niveau(try-catch)
-page niveau(page_error)
-application niveau(application_error in global.asax)
-web.config(customerrors)
-IIS
Die volgorde is dan ook de volgorde waarin de event omhoog bubbelt. Nu is de vraag: waar vang ik welke errors op?
op code niveau: de normale exceptionhandling
page niveau: gebruik ik niet
application niveau: gebruik ik alleen om exception te loggen
web.config en IIS: geen idee!!!!!!
Ik wil namelijk reageren op de verschillende statuscodes zoals 401, 404, 403_4(ssl required) en 500(internal server error, meestal unhandles exception in code)
Echter, als ik die errors instel via web.config(customerrors gekoppeld aan statuscodes) dan worden die waardes alleen aangesproken als de opgevraagde pagina een .NET pagina is(zoals .aspx). Errors als 403_4 krijg ik met geen mogelijkheid bij de web.config aangezien deze eerder worden afgevangen door IIS voordat die de webapplicatie bereikt. Ook 404(file not found) werkt gebrekkig: als ik een .aspx opvraag dan wordt de waarde uit de web.config gebruikt bij "file not found", bij normale .htm files wordt door IIS een normale 404 getoond.
Ik kan die error-pages ook op IIS-website niveau instellen maar dat lijkt me niet echt netjes. Ik wil echter wel 403_4 errors opvangen dus lijk ik geen andere mogelijkheid te hebben. Klopt die?
-code niveau(try-catch)
-page niveau(page_error)
-application niveau(application_error in global.asax)
-web.config(customerrors)
-IIS
Die volgorde is dan ook de volgorde waarin de event omhoog bubbelt. Nu is de vraag: waar vang ik welke errors op?
op code niveau: de normale exceptionhandling
page niveau: gebruik ik niet
application niveau: gebruik ik alleen om exception te loggen
web.config en IIS: geen idee!!!!!!
Ik wil namelijk reageren op de verschillende statuscodes zoals 401, 404, 403_4(ssl required) en 500(internal server error, meestal unhandles exception in code)
Echter, als ik die errors instel via web.config(customerrors gekoppeld aan statuscodes) dan worden die waardes alleen aangesproken als de opgevraagde pagina een .NET pagina is(zoals .aspx). Errors als 403_4 krijg ik met geen mogelijkheid bij de web.config aangezien deze eerder worden afgevangen door IIS voordat die de webapplicatie bereikt. Ook 404(file not found) werkt gebrekkig: als ik een .aspx opvraag dan wordt de waarde uit de web.config gebruikt bij "file not found", bij normale .htm files wordt door IIS een normale 404 getoond.
Ik kan die error-pages ook op IIS-website niveau instellen maar dat lijkt me niet echt netjes. Ik wil echter wel 403_4 errors opvangen dus lijk ik geen andere mogelijkheid te hebben. Klopt die?