Asp.Net Sayfa Düzeyi TracHata ayıklama, Hata yönetimi
⚡ Akıllı Özet
ASP.NET hata ayıklama, tracVisual Studio'daki geliştirme ve hata yönetimi, geliştiricilerin sorunları erken aşamada tespit etmelerine ve istekleri takip etmelerine yardımcı olur. trace.axd ile ilgili olarak, geliştirme ve üretim yaşam döngüsü sırasında ele alınmayan istisnalar oluştuğunda kullanıcıları özel hata sayfalarına yönlendirir.
Herhangi bir uygulamada, geliştirme sürecinde hataların oluşması kaçınılmazdır. Hataları erken aşamada keşfedebilmek önemlidir.
Visual Studio'da ASP.NET uygulamaları için bunu 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.
ASP.NET'te Hata Ayıklama Nedir?
Hata ayıklama Uygulamaya kesme noktaları ekleme işlemine kesme noktaları denir. Bu kesme noktaları, çalışan bir programın yürütülmesini durdurmak için kullanılır. Bu, geliştiricinin bir programda belirli bir anda neler olup bittiğini anlamasına olanak tanır.
Bir program örneği ele alalım. Program, kullanıcıya "Hata ayıklama yapıyoruz" metnini gösteriyor. Diyelim ki uygulamayı çalıştırdığımızda, bir nedenden dolayı bu metin görüntülenmiyor. Sorunu belirlemek için bir kesme noktası eklememiz gerekiyor. Metni görüntüleyen kod satırına bir kesme noktası ekleyebiliriz. Bu kesme noktası, programın yürütülmesini durduracaktır. Bu noktada, programcı neyin yanlış gittiğini görebilir. Programcı, programı buna göre düzeltir.
Burada, önceki bölümlerde oluşturduğumuz DemoApplication uygulamasını kullanacağız. Aşağıdaki örnekte şunları göreceğiz:
- Demo uygulamasının bir dize görüntülemesi nasıl sağlanır?
- Bir uygulamaya kesme noktaları nasıl eklenir?
- Bu kesme noktasını kullanarak uygulamada nasıl hata ayıklanır.
ASP.NET'te Bir Uygulamada Hata Ayıklama Nasıl Yapılır?
Aşağıda ASP.NET'te demo uygulama oluşturma, kesme noktaları ekleme ve hata ayıklama adımları verilmiştir:
Adım 1) Uygulamayı Visual Studio'da açın.
Ö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 dize görüntülemek için yalnızca Response.Write kod satırını ekliyoruz.
- Bu nedenle uygulama çalıştırıldığında web tarayıcısında "Hata ayıklıyoruz" dizesini görüntülemesi gerekir.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
3. Adım) Uygulamaya bir kesme noktası ekleyin.
Kesme noktası, Visual Studio'da programın yürütülmesinin durmasını istediğiniz noktadır.
- Kesme noktası eklemek için, kesme noktasının eklenmesini istediğiniz sütuna tıklamanız gerekir. Yani bizim örneğimizde, programımızın "Response.Write" kod satırında durmasını istiyoruz. Kesme noktası eklemek için herhangi bir komut eklemenize gerek yoktur. Sadece kesme noktası eklemek istediğiniz satıra tıklamanız yeterlidir.
- Bu yapıldıktan sonra kodun kırmızı renkle işaretlendiğini fark edeceksiniz. Ayrıca kod satırının yanındaki sütunda kırmızı bir baloncuk beliriyor.
Not: Bir uygulamaya birden fazla kesme noktası ekleyebilirsiniz.
Adım 4) Uygulamayı hata ayıklama modunda çalıştırın.
Şimdi uygulamanızı Hata Ayıklama Modu'nu 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 yürütülmesi kesilecektir. Visual Studio kesme noktasına gidecek ve kod satırını sarı ile işaretleyecektir.
Artık programcı kodun yanlış olduğunu hissederse yürütme durdurulabilir. Daha sonra kod buna göre değiştirilebilir. Programa devam etmek için programcının klavyedeki F5 tuşuna basması gerekir.
Nedir? TracASP.NET'te mi?
Uygulama tracing Bu özellik, istenen sayfalardan herhangi birinin hatayla sonuçlanıp sonuçlanmadığını görmeyi sağlar. tracEtkinleştirildiğinde, ek bir sayfa oluşturulur. trace.axd uygulamaya eklendi (aşağıdaki resme bakın). Bu sayfa uygulamaya eklenmiştir ve tüm istekleri ve durumlarını gösterecektir.
Nasıl Etkinleştirilir TracASP.NET'te bir uygulama için kodlama
Bunu nasıl mümkün kılacağımıza bakalım. tracbir ASP.NET uygulaması:
) 1 Adım Demo uygulamamız üzerinde çalışmaya başlayalım. Çözüm Gezgini'nden web.config dosyasını açın.
) 2 Adım Aşağıdaki kod satırını web.config dosyasına ekleyin. trace ifadesi etkinleştirmek için kullanılır. tracBaşvuru için.
- requestLimit'te trace ifadesi, yapılması gereken sayfa isteği sayısını belirtir. traced.
- Örneğimizde, 40'lık bir sınır belirledik. Daha yüksek bir değer uygulamanın performansını düşüreceği için bir sınır koyuyoruz.
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime targetFramework="4.0" /> <trace enabled="true" pageOutput="false" requestLimit="40" localOnly="false" /> </system.web> </configuration>
Demo uygulamasını Visual Studio'da çalıştırın.
Çıktı:-
Şimdi göz atarsanız... URL http://localhost:53003/trace.axdBurada her istek için bilgileri göreceksiniz. Başvuruda herhangi bir hata olup olmadığını buradan kontrol edebilirsiniz. Sayfada aşağıdaki bilgi türleri gösterilmektedir:
- Web sayfası talebinin zamanı.
- İstenen web sayfasının adı.
- Web isteğinin durum kodu (200 durum kodu, isteğin başarılı olduğu anlamına gelir).
- "Ayrıntıları Görüntüle" bağlantısı, web isteği hakkında daha fazla ayrıntı görüntülemenizi sağlar. Sağlanan önemli ayrıntılardan biri, her web isteğinin başlığında hangi bilgilerin gönderildiğini gösteren başlık bilgileridir.
Sayfa Düzeyi TracASP.NET'te
Sayfa Düzeyi Tracing ASP.NET'te, bir web sayfası işlenirken sayfa hakkında tüm genel bilgileri gösterir. Bu, bir sayfa herhangi bir nedenle çalışmadığında hata ayıklama için kullanışlıdır. Visual Studio, web isteğinde çağrılan her yöntemin süresi gibi sayfanın çeşitli yönleri hakkında ayrıntılı bilgi sağlar.
Örneğin, web uygulamanızda performans sorunu varsa, bu bilgiler sorunun giderilmesinde yardımcı olabilir. Bu bilgiler, uygulama Visual Studio'da çalıştırıldığında görüntülenir.
Nasıl Etkinleştirilir TracASP.NET'te Sayfa Düzeyinde Uygulama
Sayfa düzeyinde etkinleştirmenin nasıl yapılacağına bakalım. tracASP.NET uygulaması için:
) 1 Adım Demo uygulamamız üzerinde çalışmaya başlayalım. Çözüm Gezgini'nden demo.aspx dosyasını açın.
) 2 Adım Sayfayı etkinleştirmek için aşağıdaki kod satırını ekleyin. tracSayfa bildiriminde, özniteliği eklemeniz yeterlidir. Trace="true". Bu kod satırı sayfa düzeyinde izin verecektir. tracing.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" Trace="true" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> </form> </body> </html>
Uygulamayı Visual Studio’da çalıştırın.
Çıktı:-
Artık 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 aşamasına ilişkin süre gibi bilgiler bu sayfada görüntülenir.
Hata İşleme: Özel Bir Hata Sayfası Görüntüleme
In ASP.NET, kullanıcılara özel hata sayfalarının görüntülenmesini sağlayabilirsiniz. Bir uygulama herhangi bir hata içeriyorsa, özel bir sayfa bu hatayı kullanıcıya gösterecektir.
Örneğimizde, öncelikle bir HTML sayfası ekleyeceğiz. Bu sayfa kullanıcıya "Sorunu inceliyoruz" metnini 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ı izleyelim.
) 1 Adım Demo uygulamamız üzerinde çalışalım. Uygulamaya bir HTML sayfası ekleyelim.
- Çözüm Gezgini'nde DemoApplication'a sağ tıklayın.
- Menüden Ekle->HTML Sayfası seçeneğini seçin.
) 2 Adım Bir sonraki adımda yeni HTML sayfasına bir isim vermemiz gerekiyor.
- Lütfen adı ErrorPage olarak belirtin.
- Devam etmek için Tamam düğmesine tıklayın.
) 3 Adım Hata sayfası otomatik olarak Visual Studio'da açılacaktır. Çözüm Gezgini'ne gittiğinizde, dosyanın eklendiğini göreceksiniz.
HTML sayfasına “Sorun üzerinde çalışıyoruz” kod satırını ekleyin. web.config dosyasında değişiklik yapmadan önce HTML dosyasını kapatmanıza gerek yoktur.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> We are looking into the problem </body> </html>
) 4 Adım Ş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ı tanımlamanıza olanak tanır. defaultRedirect özelliği, önceki adımda oluşturduğumuz özel hata sayfasının adına ayarlanmıştır.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
) 5 Adım Şimdi demo.aspx.cs sayfasına biraz hatalı kod ekleyelim. Bu sayfayı Çözüm Gezgini'nde dosyaya çift tıklayarak açın.
Aşağıdaki kodu Demo.aspx.cs dosyasına ekleyin.
- Bu kod satırları, bir dosyadan metin satırlarını okumak için tasarlanmıştır.
- Dosyanın D sürücüsünde Example.txt adıyla bulunması gerekiyor.
- Ancak bizim durumumuzda bu dosya gerçekte mevcut değil. Yani bu kod uygulama çalıştırıldığında 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 çalıştırın Visual Studio ve aşağıdaki çıktıyı almalısınız.
Çıktı:-
Yukarıdaki sayfada uygulamada bir hata oluştuğu gösterilmektedir. Sonuç olarak, kullanıcıya ErrorPage.html sayfası görüntülenir.
ASP.NET İşlenmeyen İstisna
En iyi senaryolarda bile, öngörülemeyen hatalar olabilir. Örneğin, bir kullanıcı uygulamada yanlış bir sayfaya yönlendirilirse, bu tahmin edilemez bir durumdur. Bu gibi durumlarda, ASP.NET kullanıcıyı ErrorPage.html sayfasına yönlendirebilir.
Şimdi bunun bir örneğini görelim.
- ErrorPage.html dosyasını içeren aynı DemoApplication uygulamamızı kullanacağız.
- Ve uygulamamızda bulunmayan bir web sayfasını görüntülemeye çalışacağız.
- Bu durumda ErrorPage.html sayfasına yönlendirilmeliyiz. Bunu nasıl başaracağımıza dair adımları inceleyelim.
) 1 Adım Demo uygulamamız üzerinde çalışmaya başlayalım. Çözüm Gezgini'nden Global.asax.cs dosyasını açın.
Not: Global.asax.cs dosyası, uygulamanın tüm sayfalarında geçerli olacak kodları eklemek için kullanılır.
) 2 Adım 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 class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { HttpException lastErrorWrapper = Server.GetLastError() as HttpException; if (lastErrorWrapper.GetHttpCode() == 404) Server.Transfer("~/ErrorPage.html"); } } }
Code Açıklama:-
- İlk satır, Application_Error olay işleyicisidir. Bu olay, bir uygulamada hata oluştuğunda çağrılır. Olay adının Application_Error olması ve parametrelerin yukarıda gösterildiği gibi olması gerektiğini unutmayın.
- Sonra, HttpException sınıf türünden bir nesne tanımlıyoruz. Bu, hatanın tüm ayrıntılarını tutacak 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.
- Ardından, son hatanın hata kodunun 404 olup olmadığını kontrol ederiz (404 hata kodu, kullanıcının bulunamayan bir sayfaya göz attığında döndürülen standart koddur). Hata kodu eşleşirse, kullanıcıyı ErrorPage.html sayfasına yönlendiririz.
Şimdi kodu Visual Studio'da çalıştırın ve aşağıdaki çıktıyı almalısınız.
Çıktı:-
Sayfaya göz atın http://localhost:53003/Demo1.aspx. Uygulamamızda Demo1.aspx'in bulunmadığını unutmayın. Daha sonra aşağıdaki çıktıyı alacaksınız.
Yukarıdaki sayfada uygulamada bir hata oluştuğu gösterilmektedir. Sonuç olarak, kullanıcıya ErrorPage.html sayfası görüntülenir.
ASP.NET Hata Günlüğü
Uygulama hatalarını kaydetmek, geliştiricinin hatayı daha sonra ayıklamasına ve çözmesine yardımcı olur. ASP.NET, hataları kaydetme olanağına sahiptir. Bu işlem, 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.
Şimdi bunun bir örneğini görelim.
- ErrorPage.html dosyasını içeren aynı DemoApplication uygulamamızı kullanacağız.
- Ve uygulamamızda bulunmayan bir web sayfasını görüntülemeye çalışacağız.
- Bu durumda ErrorPage.html sayfamıza yönlendirilmemiz gerekir.
- Aynı zamanda hata mesajını bir günlük dosyasına yazacağız. Bunu nasıl yapacağımıza dair adımlara bakalım.
) 1 Adım Demo uygulamamız üzerinde çalışmaya başlayalım. Çözüm Gezgini'nden Global.asax.cs dosyasını açın.
) 2 Adım Aşağıdaki kod satırını Global.asax.cs dosyasına ekleyin. Bu kod, 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ğimizde, bu dosyanın D sürücüsünde oluşturulması için kod yazacağız.
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); String str = ""; str = exc.Message; String path = @"D:\AllErrors.txt"; File.WriteAllText(path, str); Server.Transfer("~/ErrorPage.html"); } } }
Code Açıklama:-
- İlk satırda, Server.GetLastError yöntemi kullanılarak hatanın kendisi alınır. Ardından bu, exc değişkenine atanır.
- Ardından str adında boş bir dize değişkeni oluşturuyoruz. exc.Message özelliğini kullanarak gerçek hata mesajını alıyoruz. exc.Message özelliği, uygulama çalıştırılırken oluşan herhangi bir hata için tam mesajı içerecektir. Bu mesaj daha sonra dize değişkenine atanır.
- Ardından, AllErrors.txt adlı dosyayı tanımlıyoruz. Tüm hata mesajları bu dosyaya gönderilecek. Tüm hata mesajlarını içeren str dizesini bu dosyaya yazıyoruz.
- Son olarak kullanıcıyı ErrorPage.html dosyasına aktarıyoruz.
Çıktı:-
Sayfaya göz atın http://localhost:53003/Demo1.aspx. Uygulamamızda Demo1.aspx'in bulunmadığını unutmayın. Daha sonra aşağıdaki çıktıyı alacaksınız.
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 iletilebilir.





























