Asp.Net’de siteyi yayınladığımızda oluşan hataların gözükmesi pek hoş bir durum değildir o yüzden oluşacak hatalarda HttpStatus koduna göre belirli sayfalara yönlendirmeyi bu makalemizde nasıl yapıldığını örnekli olarak göreceğiz.
Asp.Net Custom Errors
2 Farklı şekilde Custom Errors tanımlaması ile farklı bir sayfaya yönlendirmesi yapılarak hem site konusunda açık verilmemiş olur hemde kullanıcı için hazırlamış olduğumuz hata sayfasında daha anlaşılır olarak ne olup ne bittiğini anlamasını sağlayabiliriz. 2 Farklı Custom Error Tanımlama yöntemi şu şekildedir.
- Application Level – web.config dosyasındaki “customErrors” element’ini kullanarak global tüm sayfalar için geçerli olan hata sayfaları tanımlayabiliriz.
- Page Level – Bir sayfa için Custom Errors yönlendirmesi yapılacak ise Page direktifinde “ErrorPage” özniteliğinden faydalanılmalıdır.
PageLevel Custom Errors Kullanımı
1 | <%@ Page Language="C#" AutoEventWireup="true" ErrorPage="~/ErrorPage.aspx" CodeFile="Default.aspx.cs" Inherits="_Default" %> |
Üstte görmüş olduğunuz Page direktifi Default.aspx adlı dosyaya aittir Page direktifinin ErrorPage özniteliğine ErrorPage.aspx sayfanın adını giriyorum böylelikle Default.aspx adlı sayfasında hata oluşması durumunda ErrorPage.aspx adlı sayfaya yönlendirme sağlanacaktır.
Dikkat edilmesi gereken bir durum var ErrorPage özniteliğine hata olma durumunda yönlenilecek olan sayfanın yolunu girmiş olmanıza rağmen hata durumunda hata sayfasına yönlendirilmiyorsa webconfig dosyanıza ‘system.web’ etiketleri arasına alttaki kodu yapıştırın varsada customErrors etikeninin mode özniteliğinin değerini ‘On’ olarak değiştirin.
1 | <customErrors mode="On"></customErrors> |
ApplicationLevel Custom Errors Kullanımı
Global olarak tüm sayfalarda geçerli olacak hata sayfalarıı oluşturmak isterseniz web.config dosyasındaki customErrors etiketlerinden faydalanmamız gerekmektedir.
Örnek web.config customErrors etiketi yazılışı
1 2 3 4 5 | <customErrors mode="On" defaultRedirect="HataSayfasi.aspx"> <error statusCode="401" redirect="YetkisizHataSayfasi.aspx"></error> <error statusCode="404" redirect="SayfaBulunamadiHataSayfasi.aspx"></error> <error statusCode="500" redirect="IcSunucuHataSayfasi.aspx"></error> </customErrors> |
Üstteki kodlarda hata dönen sayfanın httpstatus kodu 401 ise “YetkisizHataSayfasi.aspx” adlı sayfaya yönlendirilecektir veya httpstatus kodu 404 ise “SayfaBulunamadiHataSayfasi.aspx” adlı sayfaya yönlendirilecektir ama statuscode özniteliği içerisinde bulunmayan httpstatus kod döndüğününde “defaultRedirect” özniteliğinde tanımlanan “HataSayfasi.aspx” adlı sayfaya yönlendirilecektir.