Asp.Net Sayfa Düzeyinde İzleme, Hata Ayıklama, Hata İşleme (Örnek)

İçindekiler:

Anonim

Herhangi bir uygulamada, geliştirme sürecinde hatalar meydana gelmek zorundadır. Hataları erken bir aşamada keşfedebilmek önemlidir.

Visual Studio'da bunu ASP.Net uygulamaları için yapmak mümkündür. Visual Studio, Hata Ayıklama için kullanılır ve ASP.Net için hata işleme tekniklerine sahiptir.

Bu eğitimde öğreneceksiniz-

  • ASP.NET'te Hata Ayıklama Nedir?
  • ASP.NET'te İzleme nedir?
  • Sayfa Düzeyinde İzleme
  • Hata İşleme: Özel Bir Hata Sayfası Görüntüleme
  • ASP.NET İşlenmeyen Özel Durum
  • ASP.NET Hata günlüğü

ASP.NET'te Hata Ayıklama Nedir?

Hata ayıklama, bir uygulamaya kesme noktaları ekleme işlemidir. Bu kesme noktaları, çalışan bir programın yürütülmesini duraklatmak için kullanılır. Bu, geliştiricinin belirli bir zamanda bir programda neler olduğunu anlamasına olanak tanır.

Bir program örneğini ele alalım. Program, kullanıcıya "Hata ayıklıyoruz" dizesi görüntüler. Bir nedenle uygulamayı çalıştırdığımızda dizenin görüntülenmediğini varsayalım. Sorunu tanımlamak için bir kesme noktası eklememiz gerekir. Dizeyi görüntüleyen kod satırına bir kesme noktası ekleyebiliriz. Bu kesme noktası, programın yürütülmesini duraklatacaktır. Bu noktada, programcı muhtemelen neyin yanlış gittiğini görebilir. Programcı, programı buna göre düzeltir.

Buradaki örnekte, daha önceki bölümlerde oluşturulmuş olan 'DemoApplication'ımızı kullanacağız. Aşağıdaki örnekte göreceğiz

  • Demo uygulamasının bir dizeyi görüntülemesini sağlama.
  • Bir uygulamaya kesme noktaları nasıl eklenir.
  • Bu kesme noktasını kullanarak uygulamada nasıl hata ayıklanır.

Adım 1) Öncelikle web uygulamamızın Visual Studio'da açık olduğundan emin olalım. DemoApplication'ın Visual Studio'da açık olduğundan emin olun.

Adım 2) Şimdi Demo.aspx.cs dosyasını açın ve aşağıdaki kod satırını ekleyin.

  • Bir dizeyi görüntülemek için Response.Write kod satırını ekliyoruz.
  • Bu nedenle, uygulama çalıştığında, web tarayıcısında "Hata ayıklıyoruz" dizesini göstermelidir.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("We are debugging");}}}

Adım 3) Şimdi bir kesme noktası ekleyelim. Bir kesme noktası, Visual Studio'da programın yürütülmesinin durmasını istediğiniz bir noktadır.

  1. Bir kesme noktası eklemek için, kesme noktasının eklenmesini istediğiniz sütuna tıklamanız gerekir. Yani bizim durumumuzda, programımızın "Response.Write" kod satırında durmasını istiyoruz. Bir kesme noktası eklemek için herhangi bir komut eklemenize gerek yoktur. Bir kesme noktası eklemek istediğiniz satıra tıklamanız yeterlidir.
  2. Bu yapıldığında, kodun kırmızıyla işaretlendiğini fark edeceksiniz. Ayrıca, kod satırının yanındaki sütunda kırmızı bir balon belirir.

Not: - Bir uygulamaya birden çok kesme noktası ekleyebilirsiniz

Adım 4) Şimdi uygulamanızı Hata Ayıklama Modunu kullanarak çalıştırmanız gerekiyor. Visual Studio'da, Debug-> Start Debugging menü seçeneğini seçin.

Çıktı:-

Tüm adımları doğru bir şekilde gerçekleştirdiğinizde, programın çalışması kesintiye uğrayacaktır. Visual Studio, kesme noktasına gider ve kod satırını sarı ile işaretler.

Şimdi, programcı kodun yanlış olduğunu hissederse, yürütme durdurulabilir. Kod daha sonra buna göre değiştirilebilir. Programa devam etmek için, programcının klavyedeki F5 düğmesine basması gerekir.

ASP.NET'te İzleme nedir?

Uygulama izleme, istenen herhangi bir sayfanın hatayla sonuçlanıp sonuçlanmadığını görmenize olanak tanır. İzleme etkinleştirildiğinde, uygulamaya trace.axd adında fazladan bir sayfa eklenir. (Aşağıdaki resme bakın). Bu sayfa uygulamaya eklenmiştir. Bu sayfa tüm istekleri ve durumlarını gösterecektir.

Bir uygulama için izlemeyi nasıl etkinleştireceğimize bakalım.

Adım 1) 'DemoApplication' üzerinde çalışalım. Çözüm Gezgini'nden web.config dosyasını açın.

Adım 2) Aşağıdaki kod satırını Web.config dosyasına ekleyin.

Trace deyimi, uygulama için izlemeyi etkinleştirmek için kullanılır.

  • Trace deyiminde 'requestLimit' kullanılır. İzlenmesi gereken sayfa isteklerinin sayısını belirtir.
  • Örneğimizde 40'lık bir limit veriyoruz. Limit veriyoruz çünkü daha yüksek bir değer uygulamanın performansını düşürecektir.

Visual Studio'da "demoapplication" ı çalıştırın.

Çıktı:-

Şimdi URL'ye ( http: // localhost: 53003 / trace.axd) göz atarsanız , her istek için bilgileri göreceksiniz. Burada bir uygulamada herhangi bir hata olup olmadığını görebilirsiniz. Aşağıdaki bilgi türleri yukarıdaki sayfada gösterilmektedir.

  1. Web sayfası için talep zamanı.
  2. İstenen web sayfasının adı.
  3. Web talebinin durum kodu. (200 durum kodu, isteğin başarılı olduğu anlamına gelir).
  4. Web talebi hakkında daha fazla ayrıntı görüntülemenize izin verdiğiniz ayrıntıları görüntüle. Bunun bir örneği aşağıda gösterilmiştir. Sağlanan önemli bir ayrıntılı bilgi başlık bilgisidir. Bu bilgi, her web isteğinin başlığında gönderilen bilgilerin ne olduğunu gösterir.

Sayfa Düzeyinde İzleme

Sayfa izleme, işlenirken bir web sayfası hakkındaki tüm genel bilgileri gösterir. Bu, bir sayfanın herhangi bir nedenle çalışmaması durumunda hata ayıklamada yararlıdır.

Visual Studio, sayfanın çeşitli yönleri hakkında ayrıntılı bilgi sağlayacaktır. Web isteğinde çağrılan her yöntemin saati gibi bilgiler. Örneğin, web uygulamanızda bir performans sorunu varsa, bu bilgiler sorunun giderilmesine yardımcı olabilir. Bu bilgiler, uygulama çalıştırıldığında Visual Studio'da görüntülenir.

Bir uygulama için izlemeyi sayfa düzeyinde nasıl etkinleştireceğimize bakalım.

Adım 1) DemoApplication üzerinde çalışalım. Çözüm Gezgini'nden demo.aspx dosyasını açın

Adım 2) Sayfa izlemeyi etkinleştirmek için aşağıdaki kod satırını ekleyin. Sayfa bildiriminde, Trace = "true" satırını eklemeniz yeterlidir. Bu kod satırı, sayfa düzeyinde izlemeye izin verecektir.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

Şimdi Demo.aspx web sayfası görüntülendiğinde, sayfa hakkında birçok bilgi alacaksınız. Sayfa yaşam döngüsünün her bir yönü için zaman gibi bilgiler bu sayfada görüntülenir.

Hata İşleme: Özel Bir Hata Sayfası Görüntüleme

ASP.Net'te, kullanıcılara özel hata sayfalarının görüntülenmesini sağlayabilirsiniz. Bir uygulama herhangi bir tür hata içeriyorsa, kullanıcıya bu hatayı özel bir sayfa gösterecektir.

Örneğimizde, önce bir HTML sayfası ekleyeceğiz. Bu sayfa, "Sorunu araştırıyoruz" kullanıcısına bir dize gösterecektir. Ardından, hata sayfasının gösterilmesi için demo.aspx sayfamıza bazı hata kodları ekleyeceğiz.

Aşağıda belirtilen adımları takip edelim

Adım 1) DemoApplication üzerinde çalışalım. Uygulamaya bir HTML sayfası ekleyelim

  1. Solution Explorer'da DemoApplication'a sağ tıklayın
  2. 'Ekle' -> HTML Sayfası menü seçeneğini seçin

Adım 2) Sonraki adımda, yeni HTML sayfasına bir ad vermemiz gerekiyor.

  1. Adı 'Hata Sayfası' olarak sağlayın.
  2. Devam etmek için 'Tamam' düğmesine tıklayın.

Adım 3) Hata sayfası otomatik olarak Visual Studio'da açılacaktır. Solution Explorer'a giderseniz, dosyanın eklendiğini göreceksiniz.

HTML sayfasına "Sorunu araştırıyoruz" kod satırını ekleyin. Web.config dosyasında değişiklik yapmadan önce HTML dosyasını kapatmanıza gerek yoktur.

We are looking into the problem

Adım 4) Şimdi web.config dosyasında bir değişiklik yapmanız gerekiyor. Bu değişiklik, uygulamada bir hata oluştuğunda, özel hata sayfasının görüntülenmesi gerektiğini bildirecektir.

"CustomErrors" etiketi, özel bir hata sayfasının tanımlanmasına izin verir. DefaultRedirect özelliği, önceki adımda oluşturulan özel hata sayfamızın adına ayarlanır.

Adım 5) Şimdi demo.aspx.cs sayfasına bazı hatalı kodlar ekleyelim. Çözüm Gezgini'nde dosyaya çift tıklayarak bu sayfayı açın

Aşağıdaki kodu Demo.aspx.cs dosyasına ekleyin.

  • Bu kod satırları, bir dosyadaki bir metnin satırlarını okumak için tasarlanmıştır.
  • Dosyanın D sürücüsünde 'Example.txt' adıyla yer alması gerekiyor.
  • Ama bizim durumumuzda bu dosya gerçekten mevcut değil. Bu nedenle, uygulama çalıştığında bu kod bir hataya neden olacaktır.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){String path = @"D:\Example.txt";string[] lines;lines = File.ReadAllLines(path);}}}

Şimdi kodu Visual Studio'da çalıştırın ve aşağıdaki çıktıyı almalısınız.

Çıktı:-

Yukarıdaki sayfa, uygulamada bir hatanın tetiklendiğini göstermektedir. Sonuç olarak, Error.html sayfası kullanıcıya görüntülenir.

ASP.NET İşlenmeyen Özel Durum

En iyi senaryolarda bile öngörülemeyen hatalar olabilir.

Bir kullanıcının uygulamada yanlış sayfaya göz attığını varsayalım. Bu tahmin edilemeyen bir şey. Bu tür durumlarda ASP.Net, kullanıcıyı errorpage.html'ye yönlendirebilir.

Bunun üzerine bir örnek görelim.

  • Errorpage.html'ye sahip olan aynı 'DemoApplication'ı kullanacağız.
  • Ve uygulamamızda olmayan bir web sayfasını görüntülemeye çalışacağız.
  • Bu durumda ErrorPage.html sayfamıza yönlendirilmeliyiz. Bunu başarmak için gereken adımları görelim.

Adım 1) DemoApplication üzerinde çalışalım. Çözüm Gezgini'nden Global.asax.cs dosyasını açın

NOT : global.asax.cs dosyası, uygulamadaki tüm sayfalarda geçerli olacak kodu eklemek için kullanılır.

Adım 2) Aşağıdaki kod satırını global.asax.cs dosyasına ekleyin. Bu satırlar, hataları kontrol etmek ve buna göre ErrorPage.html sayfasını görüntülemek için kullanılacaktır.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){‬ HttpException lastErrorWrapper = Server.GetLastError() as HttpException;if(lastErrorWrapper.GetHttpCode() == 404)Server.T ransfer("~/ErrorPage.html");}}}

Kod Açıklaması: -

  1. İlk satır, Application_Error olay işleyicisidir. Bu olay, bir uygulamada bir hata oluştuğunda çağrılır. Olay adının 'Application_Error' olması gerektiğini unutmayın. Ve parametreler yukarıda gösterildiği gibi olmalıdır.
  2. Ardından, HttpException sınıf türünde bir nesne tanımlıyoruz. Bu, hatanın tüm ayrıntılarını barındıran standart bir nesnedir. Daha sonra uygulamada meydana gelen son hatanın tüm ayrıntılarını almak için Server.GetLastError yöntemini kullanırız.
  3. Daha sonra son hatanın hata kodunun 404 olup olmadığını kontrol ederiz. (Hata kodu 404, bir kullanıcı bulunamayan bir sayfaya göz attığında döndürülen standart koddur). Ardından, hata kodu eşleşirse kullanıcıyı ErrorPage.html sayfasına aktarırız.

Şimdi kodu Visual Studio'da çalıştırın ve aşağıdaki çıktıyı almalısınız

Çıktı:-

Http: // localhost: 53003 / Demo1.aspx sayfasına göz atın . Demo1.aspx'in uygulamamızda bulunmadığını unutmayın. Daha sonra aşağıdaki çıktıyı alacaksınız.

Yukarıdaki sayfa, uygulamada bir hatanın tetiklendiğini göstermektedir. Sonuç olarak, Error.html sayfası kullanıcıya görüntülenir.

ASP.NET Hata günlüğü

Uygulama hatalarını günlüğe kaydederek, geliştiricinin hatayı daha sonra ayıklamasına ve çözmesine yardımcı olur. ASP.Net, hataları günlüğe kaydetme olanağına sahiptir. Bu, hata yakalandığında Global.asax.cs dosyasında yapılır. Yakalama işlemi sırasında hata mesajı bir günlük dosyasına yazılabilir.

Bunun üzerine bir örnek görelim.

  • Errorpage.html ile aynı DemoApplication uygulamamızı kullanacağız.
  • Ve uygulamamızda olmayan bir web sayfasını görüntülemeye çalışacağız.
  • Bu durumda ErrorPage.html sayfamıza yönlendirilmeliyiz.
  • Ve aynı zamanda, hata mesajını bir günlük dosyasına yazacağız. Bunu başarmak için gereken adımları görelim.

Adım 1) DemoApplication üzerinde çalışalım. Çözüm Gezgini'nden Global.asax.cs dosyasını açın

Adım 2) Aşağıdaki kod satırını global.asax.cs dosyasına ekleyin. Hataları kontrol edecek ve buna göre ErrorPage.html sayfasını görüntüleyecektir. Aynı zamanda hata ayrıntılarını 'AllErrors.txt' adlı bir dosyaya kaydedeceğiz. Örneğimiz için, bu dosyanın D sürücüsünde oluşturulması için kod yazacağız.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){Exception exc = Server.GetLastError();String str ;str = exc.Message;String path = @"D:\AllErrors.txt";File.WriteAllTest(path,str);Server.trrasfer("~/ErrorPage.html");}}}

Kod Açıklaması: -

  1. İlk satır, 'Server.GetLastError' yöntemini kullanarak hatanın kendisini almaktır. Bu daha sonra "exc" değişkenine atanır.
  2. Daha sonra 'str' adında boş bir dize değişkeni oluşturuyoruz. Gerçek hata mesajını 'exc.Message' özelliğini kullanarak alıyoruz. Exc.Message özelliği, uygulamayı çalıştırırken ortaya çıkan herhangi bir hata için tam mesaja sahip olacaktır. Bu daha sonra dize değişkenine atanır.
  3. Ardından, 'AllErrrors.txt' adlı dosyayı tanımlıyoruz. Burası tüm hata mesajlarının gönderileceği yerdir. Tüm hata mesajlarını içeren 'str' dizesini bu dosyaya yazıyoruz.
  4. Son olarak kullanıcıyı ErrorPage.html dosyasına aktarıyoruz.

Çıktı:-

Http: // localhost: 53003 / Demo1.aspx sayfasına göz atın . Demo1.aspx'in uygulamamızda bulunmadığını unutmayın. Daha sonra aşağıdaki çıktıyı alacaksınız.

Ve aynı zamanda 'AllErrors.txt' dosyasını açarsanız aşağıdaki bilgileri göreceksiniz.

Hata mesajı daha sonra hata ayıklama amacıyla geliştiriciye daha sonraki bir noktada iletilebilir.

Özet

  • ASP.Net, hata ayıklama ve Hata işlemeyi gerçekleştirme olanağına sahiptir.
  • Koda kesme noktaları ekleyerek hata ayıklama gerçekleştirilebilir. Daha sonra kodda hata ayıklamak için Visual Studio'da Hata Ayıklama ile Başlat seçeneğini çalıştırır.
  • İzleme, uygulamayı çalıştırırken daha fazla bilgi sağlama olanağıdır. Bu, uygulama veya sayfa düzeyinde yapılabilir.
  • Sayfa düzeyinde, Trace = true kodunun sayfa yönergesine eklenmesi gerekir.
  • Uygulama düzeyinde, uygulama için Trace.axd adında fazladan bir sayfa oluşturulur. Bu, gerekli tüm izleme bilgilerini sağlar.