Asp.Net Hata Sayfaları

Asp.net ile hata sayfalarını nasıl oluşturabileceğiz ve neden hata sayfası oluşturmak önemlidir konularına değineceğiz. Öncelikle oluşturduğumuz sitelerde hata sayfası kullanmalıyız? En basit örneği ile arama motorlarının sitemizdeki sayfalarımızı indexlediğini düşünelim. Arama motorlarının indexlemiş olduğu herhangi bir sayfası biz silebiliriz ve arama motorları silinen bu linki tespit etmesi uzun sürebilir veya eski indexlenen sayfaları silmeyebilir.
Böyle bir durumda silinen sayfaya arama motorları sayesinde ulaşan kullanıcı sunucunun standart hata sayfası ile karşılaşacaktır. Pek hoş olmayan bir durumdur bu. Böyle bir durum ile karşılaşmamak için kendi oluşturduğumuz hata sayfasına kullanıcıyı yönlendirebilir ve daha hoş bir hata sayfası ile “aramış olduğunuz içerik mevcut değil aşağıdaki içeriklere göz atmanızı tavsiye ederiz” (artık mesaj size kalmış ) gibi kullanıcıyı siteden kaybetmek yerine farklı içeriğe yönlendirebilir siniz.
Asp.Net hata sayfalarını web.config dosyası ile yönetebilirsiniz. Aşağıdaki örnekte verdiğim kodları <system.web> tagı arasında yazdığınızda, <customErrors> tagı altında bulunan her <error> tagı sizin yeni hata tanımlamanızı sağlayacaktır. <error> tagı içerisinde bulunan statusCode parametresi hata kodlarını ve redirect parametresi ise ilgili hata sonucu gideceği sayfayı belirtecektir.

[csharp]

<customErrors mode="On">
<error statusCode="400" redirect="~/ErrorPage.aspx?eid=400"/>
<error statusCode="401" redirect="~/ErrorPage.aspx?eid=401"/>
<error statusCode="403" redirect="~/ErrorPage.aspx?eid=403"/>
<error statusCode="404" redirect="~/ErrorPage.aspx?eid=404"/>
<error statusCode="500" redirect="~/ErrorPage.aspx?eid=500"/>
</customErrors>

[/csharp]

Örneğimde ErrorPage.aspx sayfası oluşturdum ve <error> tagında bulunan  redirect parametresinde “eid” değerini ErrorPage.aspx sayfasına QueryString ile gönderiyorum ve ErrorPage.aspx sayfasının Page_Load olayında QueryString değerini okuyup ekrana ilgili hata kodunu yazdırıyorum.

[csharp]

lblError.Text = "Bu bir <b>" + Request.QueryString["eid"] + "</b> hatasıdır.";

[/csharp]

404 not found

Yararlı olması dileğiyle…

 

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.