Asp.Net पेज लेवल Tracडीबगिंग, त्रुटि प्रबंधन

⚡ स्मार्ट सारांश

ASP.NET डिबगिंग tracविजुअल स्टूडियो में प्रोग्रामिंग और त्रुटि प्रबंधन डेवलपर्स को समस्याओं को जल्दी पकड़ने और अनुरोधों का पालन करने में मदद करते हैं। trace.axd का उपयोग करें, और विकास और उत्पादन जीवनचक्र के दौरान अनहैंडल्ड अपवाद होने पर उपयोगकर्ताओं को कस्टम त्रुटि पृष्ठों पर पुनर्निर्देशित करें।

  • 🐞 डिबगिंग: विजुअल स्टूडियो में ब्रेकपॉइंट निष्पादन को रोकते हैं ताकि आप चल रहे ASP.NET पेज को लाइन दर लाइन जांच सकें।
  • 🔎 Tracआईएनजी: सक्षम करने से tracweb.config में e जोड़ने से trace.axd नामक फ़ाइल में प्रत्येक अनुरोध, उसका स्टेटस कोड और समय सूचीबद्ध होता है।
  • 📄 पेज Tracआईएनजी: जोड़ना TracPage निर्देश में e="true" का मान किसी एक पृष्ठ के लिए जीवनचक्र समय को दर्शाता है।
  • 🚧 कस्टम त्रुटियाँ: जब एप्लिकेशन विफल हो जाता है, तो customErrors टैग उपयोगकर्ताओं को एक अनुकूल त्रुटि पृष्ठ पर पुनर्निर्देशित करता है।
  • 🧭 अनहैंडल्ड अपवाद: Global.asax में मौजूद Application_Error अप्रत्याशित त्रुटियों को पकड़ता है और उन्हें एक सुरक्षित पृष्ठ पर पुनर्निर्देशित करता है।
  • 🗃️ त्रुटि लॉगिंग: Server.GetLastError के विवरण को एक फ़ाइल में लिखने से बाद में डिबगिंग के लिए समस्याओं को रिकॉर्ड किया जा सकता है।

ASP.NET पेज लेवल Tracइंग, डिबगिंग और त्रुटि प्रबंधन

किसी भी एप्लिकेशन में विकास प्रक्रिया के दौरान त्रुटियाँ होना स्वाभाविक है। त्रुटियों को शुरुआती चरण में ही पहचान पाना महत्वपूर्ण है।

विजुअल स्टूडियो में, ASP.NET अनुप्रयोगों के लिए ऐसा करना संभव है। विजुअल स्टूडियो का उपयोग डिबगिंग के लिए किया जाता है और इसमें ASP.NET के लिए त्रुटि प्रबंधन तकनीकें मौजूद हैं।

ASP.NET में डिबगिंग क्या है?

डीबगिंग एप्लिकेशन में ब्रेकपॉइंट जोड़ने की प्रक्रिया को ब्रेकपॉइंट कहते हैं। इनका उपयोग चल रहे प्रोग्राम के निष्पादन को रोकने के लिए किया जाता है। इससे डेवलपर को यह समझने में मदद मिलती है कि किसी प्रोग्राम में किसी विशेष समय पर क्या हो रहा है।

आइए एक प्रोग्राम का उदाहरण लेते हैं। यह प्रोग्राम उपयोगकर्ता को "हम डीबग कर रहे हैं" स्ट्रिंग दिखाता है। मान लीजिए कि जब हम एप्लिकेशन चलाते हैं, तो किसी कारणवश यह स्ट्रिंग प्रदर्शित नहीं होती है। समस्या का पता लगाने के लिए हमें एक ब्रेकपॉइंट जोड़ना होगा। हम उस कोड लाइन पर ब्रेकपॉइंट जोड़ सकते हैं जहाँ स्ट्रिंग प्रदर्शित होती है। यह ब्रेकपॉइंट प्रोग्राम के निष्पादन को रोक देगा। इस बिंदु पर, प्रोग्रामर देख सकता है कि संभवतः क्या गड़बड़ हो रही है। प्रोग्रामर तदनुसार प्रोग्राम को ठीक करता है।

इस उदाहरण में, हम अपने डेमो एप्लिकेशन का उपयोग करेंगे जिसे हमने पिछले अध्यायों में बनाया था। निम्नलिखित उदाहरण में, हम देखेंगे:

  • डेमो एप्लीकेशन को स्ट्रिंग प्रदर्शित करने हेतु कैसे तैयार करें।
  • किसी एप्लिकेशन में ब्रेकपॉइंट कैसे जोड़ें?
  • इस ब्रेकपॉइंट का उपयोग करके एप्लिकेशन को डीबग कैसे करें।

ASP.NET में किसी एप्लिकेशन को डीबग कैसे करें

ASP.NET में डेमो एप्लिकेशन बनाने, ब्रेकपॉइंट जोड़ने और डीबग करने के लिए नीचे दिए गए चरण हैं:

चरण 1) विजुअल स्टूडियो में एप्लिकेशन खोलें।
सबसे पहले, सुनिश्चित करें कि हमारा वेब एप्लिकेशन विजुअल स्टूडियो में खुला हुआ है। सुनिश्चित करें कि डेमो एप्लिकेशन विजुअल स्टूडियो में खुला हुआ है।

ASP.NET में किसी एप्लिकेशन को डीबग करें

चरण 2) अब Demo.aspx.cs फ़ाइल खोलें और नीचे दी गई कोड लाइन जोड़ें।

  • हम केवल एक स्ट्रिंग प्रदर्शित करने के लिए कोड लाइन Response.Write जोड़ रहे हैं।
  • इसलिए जब एप्लिकेशन निष्पादित होता है, तो उसे वेब ब्राउज़र में "हम डिबगिंग कर रहे हैं" स्ट्रिंग प्रदर्शित करनी चाहिए।

ASP.NET में किसी एप्लिकेशन को डीबग करें

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

चरण 3) एप्लिकेशन में एक ब्रेकपॉइंट जोड़ें।
ब्रेकपॉइंट विजुअल स्टूडियो में वह बिंदु है जहां आप प्रोग्राम का निष्पादन रोकना चाहते हैं।

ASP.NET में किसी एप्लिकेशन को डीबग करें

  1. ब्रेकपॉइंट जोड़ने के लिए, आपको उस कॉलम पर क्लिक करना होगा जहाँ आप ब्रेकपॉइंट लगाना चाहते हैं। उदाहरण के लिए, हम चाहते हैं कि हमारा प्रोग्राम "Response.Write" कोड लाइन पर रुक जाए। ब्रेकपॉइंट जोड़ने के लिए किसी कमांड की आवश्यकता नहीं है। आपको बस उस लाइन पर क्लिक करना है जिस पर आप ब्रेकपॉइंट लगाना चाहते हैं।
  2. ऐसा करने के बाद, आप देखेंगे कि कोड लाल रंग में चिह्नित हो गया है। साथ ही, कोड लाइन के बगल वाले कॉलम में एक लाल बुलबुला भी आता है।

नोट: आप किसी एप्लिकेशन में कई ब्रेकपॉइंट जोड़ सकते हैं।

चरण 4) एप्लिकेशन को डीबगिंग मोड में चलाएं।
अब आपको अपने एप्लिकेशन को डीबगिंग मोड का उपयोग करके चलाने की आवश्यकता है। विज़ुअल स्टूडियो में, मेनू विकल्प डीबग-> डीबगिंग प्रारंभ करें चुनें।

ASP.NET में किसी एप्लिकेशन को डीबग करें

आउटपुट: -

ASP.NET में किसी एप्लिकेशन को डीबग करें

जब आप सभी चरणों को सही ढंग से निष्पादित करेंगे, तो प्रोग्राम का निष्पादन रुक जाएगा। विज़ुअल स्टूडियो ब्रेकपॉइंट पर जाएगा और कोड की लाइन को पीले रंग से चिह्नित करेगा।

अब, अगर प्रोग्रामर को लगता है कि कोड गलत है, तो निष्पादन को रोका जा सकता है। फिर कोड को तदनुसार संशोधित किया जा सकता है। प्रोग्राम को आगे बढ़ाने के लिए, प्रोग्रामर को कीबोर्ड पर F5 बटन पर क्लिक करना होगा।

एचएमबी क्या है? TracASP.NET में काम करना?

आवेदन tracआईएनजी इससे यह पता चलता है कि अनुरोधित पृष्ठों में कोई त्रुटि तो नहीं है। tracयदि सक्षम है, तो एक अतिरिक्त पृष्ठ जिसे कहा जाता है trace.axd को एप्लिकेशन में जोड़ दिया गया है (नीचे दी गई छवि देखें)। यह पृष्ठ एप्लिकेशन से जुड़ा हुआ है और इसमें सभी अनुरोध और उनकी स्थिति दिखाई देगी।

TracASP.NET में

कैसे सक्षम करें TracASP.NET में एक एप्लिकेशन के लिए आवेदन करना

आइए देखें कि इसे कैसे सक्षम किया जाए tracएक की तलाश में ASP.NET एप्लिकेशन:

चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से web.config फ़ाइल खोलें।

सक्षम tracASP.NET में एक एप्लिकेशन के लिए आवेदन करना

चरण 2) नीचे दी गई कोड की पंक्ति को web.config फ़ाइल में जोड़ें। tracई स्टेटमेंट का उपयोग सक्षम करने के लिए किया जाता है tracआवेदन के लिए आवेदन कर रहे हैं।

  • अनुरोध सीमा में tracयह कथन पृष्ठ अनुरोधों की संख्या निर्दिष्ट करता है जिन्हें पूरा किया जाना है। tracएड.
  • हमारे उदाहरण में, हम 40 की सीमा दे रहे हैं। हम सीमा इसलिए देते हैं क्योंकि इससे अधिक मान एप्लिकेशन के प्रदर्शन को खराब कर देगा।

सक्षम tracASP.NET में एक एप्लिकेशन के लिए आवेदन करना

<?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>

विजुअल स्टूडियो में डेमो एप्लिकेशन चलाएं।

आउटपुट: -

सक्षम tracASP.NET में एक एप्लिकेशन के लिए आवेदन करना

यदि अब आप ब्राउज़ करते हैं URL http://localhost:53003/trace.axdयहां आपको प्रत्येक अनुरोध की जानकारी दिखाई देगी। यहां आप देख सकते हैं कि आवेदन में कोई त्रुटि तो नहीं है। पृष्ठ पर निम्नलिखित प्रकार की जानकारी प्रदर्शित की जाती है:

  1. वेब पेज के लिए अनुरोध का समय.
  2. अनुरोधित वेब पेज का नाम।
  3. वेब अनुरोध का स्टेटस कोड (स्टेटस कोड 200 का मतलब है कि अनुरोध सफल रहा)।
  4. 'विवरण देखें' लिंक आपको वेब अनुरोध के बारे में अधिक जानकारी देखने की अनुमति देता है। इसमें दी गई एक महत्वपूर्ण जानकारी हेडर की जानकारी है, जो यह दर्शाती है कि प्रत्येक वेब अनुरोध के हेडर में कौन सी जानकारी भेजी जाती है।

सक्षम tracASP.NET में एक एप्लिकेशन के लिए आवेदन करना

पेज स्तर TracASP.NET में

पेज स्तर Tracआईएनजी ASP.NET में, यह वेब पेज के प्रोसेस होने के दौरान उससे जुड़ी सभी सामान्य जानकारी दिखाता है। पेज के किसी भी कारण से काम न करने की स्थिति में डीबगिंग के लिए यह जानकारी उपयोगी होती है। विजुअल स्टूडियो पेज के विभिन्न पहलुओं के बारे में विस्तृत जानकारी प्रदान करता है, जैसे कि वेब रिक्वेस्ट में कॉल किए गए प्रत्येक मेथड का समय।

उदाहरण के लिए, यदि आपके वेब एप्लिकेशन में प्रदर्शन संबंधी समस्या आ रही है, तो यह जानकारी समस्या को डीबग करने में सहायक हो सकती है। यह जानकारी एप्लिकेशन के विजुअल स्टूडियो में चलने पर प्रदर्शित होती है।

कैसे सक्षम करें TracASP.NET में पेज लेवल पर

आइए देखें कि पेज लेवल को कैसे सक्षम किया जाए tracASP.NET एप्लिकेशन के लिए:

चरण 1) चलिए, हम अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से demo.aspx फ़ाइल खोलें।

पेज स्तर TracASP.NET में

चरण 2) पेज को सक्षम करने के लिए नीचे दी गई कोड लाइन जोड़ें। tracपेज घोषणा में, बस एट्रिब्यूट जोड़ें। Trace=”true”। यह कोड लाइन पेज लेवल की अनुमति देगी। tracआईएनजी.

पेज स्तर TracASP.NET में

<%@ 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>

अनुप्रयोग को Visual Studio में चलाएँ.

आउटपुट: -

पेज स्तर TracASP.NET में

अब जब वेब पेज Demo.aspx प्रदर्शित होगा, तो आपको पेज के बारे में बहुत सारी जानकारी मिलेगी। पेज जीवनचक्र के प्रत्येक पहलू के लिए समय जैसी जानकारी इस पेज पर प्रदर्शित की जाती है।

त्रुटि प्रबंधन: कस्टम त्रुटि पृष्ठ प्रदर्शित करना

In ASP.NET, आप उपयोगकर्ताओं को कस्टम त्रुटि पृष्ठ प्रदर्शित कर सकते हैं। यदि किसी एप्लिकेशन में किसी भी प्रकार की त्रुटि है, तो एक कस्टम पेज उपयोगकर्ता को यह त्रुटि प्रदर्शित करेगा।

हमारे उदाहरण में, हम सबसे पहले एक HTML पेज जोड़ेंगे। यह पेज उपयोगकर्ता को "हम समस्या की जांच कर रहे हैं" संदेश प्रदर्शित करेगा। इसके बाद हम अपने demo.aspx पेज में कुछ त्रुटि कोड जोड़ेंगे ताकि त्रुटि पेज प्रदर्शित हो सके। आइए नीचे दिए गए चरणों का पालन करें।

चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। चलिए एप्लिकेशन में एक HTML पेज जोड़ते हैं।

  1. सॉल्यूशन एक्सप्लोरर में डेमोएप्लिकेशन पर राइट-क्लिक करें।
  2. ऐड->एचटीएमएल पेज मेनू विकल्प चुनें।

ASP.NET में त्रुटि प्रबंधन

चरण 2) अगले चरण में, हमें नए HTML पृष्ठ को एक नाम प्रदान करना होगा।

  1. नाम के रूप में ErrorPage प्रदान करें।
  2. आगे बढ़ने के लिए ओके बटन पर क्लिक करें।

ASP.NET में त्रुटि प्रबंधन

चरण 3) एरर पेज विजुअल स्टूडियो में अपने आप खुल जाएगा। सॉल्यूशन एक्सप्लोरर में जाकर आप देख सकते हैं कि फाइल जुड़ गई है।

ASP.NET में त्रुटि प्रबंधन

HTML पेज में "हम समस्या की जांच कर रहे हैं" कोड लाइन जोड़ें। वेब.कॉन्फ़िग फ़ाइल में बदलाव करने से पहले HTML फ़ाइल को बंद करने की आवश्यकता नहीं है।

ASP.NET में त्रुटि प्रबंधन

<!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) अब आपको web.config फ़ाइल में बदलाव करना होगा। इस बदलाव से यह सूचित होगा कि एप्लिकेशन में कोई त्रुटि होने पर कस्टम त्रुटि पृष्ठ प्रदर्शित होना चाहिए। customErrors टैग कस्टम त्रुटि पृष्ठ को परिभाषित करने की अनुमति देता है। defaultRedirect प्रॉपर्टी को पिछले चरण में बनाए गए हमारे कस्टम त्रुटि पृष्ठ के नाम पर सेट किया जाता है।

ASP.NET में त्रुटि प्रबंधन

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <httpRuntime targetFramework="4.0" />

        <customErrors mode="On" defaultRedirect="ErrorPage.html">
        </customErrors>

    </system.web>
</configuration>

चरण 5) अब आइए demo.aspx.cs पेज में कुछ त्रुटिपूर्ण कोड जोड़ते हैं। सॉल्यूशन एक्सप्लोरर में इस फ़ाइल पर डबल-क्लिक करके इस पेज को खोलें।

ASP.NET में त्रुटि प्रबंधन

नीचे दिए गए कोड को Demo.aspx.cs फ़ाइल में जोड़ें।

  • कोड की ये पंक्तियाँ एक फ़ाइल से टेक्स्ट की पंक्तियों को पढ़ने के लिए डिज़ाइन की गई हैं।
  • यह फाइल D ड्राइव में Example.txt नाम से स्थित होनी चाहिए।
  • लेकिन हमारी स्थिति में, यह फ़ाइल वास्तव में मौजूद नहीं है। इसलिए जब एप्लिकेशन चलेगा तो यह कोड त्रुटि उत्पन्न करेगा।

ASP.NET में त्रुटि प्रबंधन

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);
        }
    }
}

अब कोड को निष्पादित करें विजुअल स्टूडियो और आपको नीचे दिया गया आउटपुट मिलना चाहिए।

आउटपुट: -

ASP.NET में त्रुटि प्रबंधन

उपरोक्त पृष्ठ दर्शाता है कि एप्लिकेशन में एक त्रुटि उत्पन्न हुई है। परिणामस्वरूप, उपयोगकर्ता को ErrorPage.html पृष्ठ प्रदर्शित होता है।

ASP.NET अनहैंडल अपवाद

सर्वोत्तम परिस्थितियों में भी, ऐसी त्रुटियाँ हो सकती हैं जिनकी पहले से भविष्यवाणी नहीं की जा सकती। मान लीजिए कि कोई उपयोगकर्ता एप्लिकेशन में गलत पेज पर चला जाता है। यह ऐसी चीज है जिसकी भविष्यवाणी नहीं की जा सकती। ऐसे मामलों में, ASP.NET उपयोगकर्ता को ErrorPage.html पर रीडायरेक्ट कर सकता है।

आइए इसका एक उदाहरण देखते हैं।

  • हम अपने उसी डेमो एप्लिकेशन का उपयोग करने जा रहे हैं जिसमें ErrorPage.html फ़ाइल है।
  • और हम एक ऐसे वेब पेज को देखने का प्रयास करेंगे जो हमारे एप्लीकेशन में मौजूद नहीं है।
  • इस स्थिति में हमें ErrorPage.html पेज पर रीडायरेक्ट किया जाना चाहिए। आइए इसे प्राप्त करने के चरणों को देखें।

चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से Global.asax.cs फ़ाइल खोलें।

ASP.NET अनहैंडल अपवाद

नोट: Global.asax.cs फ़ाइल का उपयोग उस कोड को जोड़ने के लिए किया जाता है जो एप्लिकेशन के सभी पृष्ठों पर लागू होगा।

चरण 2) नीचे दी गई कोड की पंक्ति को Global.asax.cs फ़ाइल में जोड़ें। इन पंक्तियों का उपयोग त्रुटियों की जाँच करने और तदनुसार ErrorPage.html पृष्ठ प्रदर्शित करने के लिए किया जाएगा।

ASP.NET अनहैंडल अपवाद

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 स्पष्टीकरण: -

  1. पहली पंक्ति Application_Error इवेंट हैंडलर है। जब भी किसी एप्लिकेशन में कोई त्रुटि होती है, तो यह इवेंट कॉल किया जाता है। ध्यान दें कि इवेंट का नाम Application_Error होना चाहिए और पैरामीटर ऊपर दिखाए गए अनुसार होने चाहिए।
  2. इसके बाद, हम HttpException क्लास प्रकार का एक ऑब्जेक्ट परिभाषित करते हैं। यह एक मानक ऑब्जेक्ट है जो त्रुटि के सभी विवरण रखेगा। फिर हम एप्लिकेशन में हुई अंतिम त्रुटि के सभी विवरण प्राप्त करने के लिए Server.GetLastError विधि का उपयोग करते हैं।
  3. इसके बाद हम जाँचते हैं कि पिछली त्रुटि का कोड 404 है या नहीं (404 वह मानक कोड है जो तब मिलता है जब कोई उपयोगकर्ता किसी ऐसे पृष्ठ को खोजने का प्रयास करता है जो नहीं मिलता)। यदि त्रुटि कोड मेल खाता है, तो हम उपयोगकर्ता को ErrorPage.html पृष्ठ पर भेज देते हैं।

अब कोड को विजुअल स्टूडियो में चलाएं और आपको नीचे दिया गया आउटपुट प्राप्त होना चाहिए।

आउटपुट: -

पेज ब्राउज़ करें http://localhost:53003/Demo1.aspx. याद रखें कि Demo1.aspx हमारे एप्लीकेशन में मौजूद नहीं है। फिर आपको नीचे दिया गया आउटपुट मिलेगा।

ASP.NET में अनहैंडल अपवाद

उपरोक्त पृष्ठ दर्शाता है कि एप्लिकेशन में एक त्रुटि उत्पन्न हुई है। परिणामस्वरूप, उपयोगकर्ता को ErrorPage.html पृष्ठ प्रदर्शित होता है।

ASP.NET त्रुटि लॉगिंग

एप्लिकेशन त्रुटियों को लॉग करने से डेवलपर को बाद में त्रुटि को डीबग करने और हल करने में मदद मिलती है। ASP.NET में त्रुटियों को लॉग करने की सुविधा है। यह त्रुटि कैप्चर होने पर Global.asax.cs फ़ाइल में किया जाता है। कैप्चरिंग प्रक्रिया के दौरान, त्रुटि संदेश को एक लॉग फ़ाइल में लिखा जा सकता है।

आइए इसका एक उदाहरण देखते हैं।

  • हम अपने उसी डेमो एप्लिकेशन का उपयोग करने जा रहे हैं जिसमें ErrorPage.html फ़ाइल है।
  • और हम एक ऐसे वेब पेज को देखने का प्रयास करेंगे जो हमारे एप्लीकेशन में मौजूद नहीं है।
  • इस स्थिति में हमें अपने ErrorPage.html पृष्ठ पर पुनः निर्देशित किया जाना चाहिए।
  • साथ ही, हम त्रुटि संदेश को एक लॉग फ़ाइल में लिखेंगे। आइए इसे करने के चरणों को देखें।

चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से Global.asax.cs फ़ाइल खोलें।

ASP.NET त्रुटि लॉगिंग

चरण 2) नीचे दी गई कोड लाइन को Global.asax.cs में जोड़ें। यह त्रुटियों की जाँच करेगा और तदनुसार ErrorPage.html पेज प्रदर्शित करेगा। साथ ही, हम त्रुटियों का विवरण AllErrors.txt नामक फ़ाइल में लॉग करेंगे। हमारे उदाहरण के लिए, हम इस फ़ाइल को D ड्राइव पर बनाने के लिए कोड लिखेंगे।

ASP.NET त्रुटि लॉगिंग

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 स्पष्टीकरण: -

  1. पहली पंक्ति Server.GetLastError विधि का उपयोग करके त्रुटि प्राप्त करने के लिए है। फिर इसे exc नामक वेरिएबल को असाइन किया जाता है।
  2. इसके बाद हम str नाम का एक खाली स्ट्रिंग वेरिएबल बनाते हैं। हम exc.Message प्रॉपर्टी का उपयोग करके वास्तविक त्रुटि संदेश प्राप्त करते हैं। exc.Message प्रॉपर्टी में एप्लिकेशन चलाने के दौरान होने वाली किसी भी त्रुटि का सटीक संदेश होता है। फिर इसे स्ट्रिंग वेरिएबल को असाइन कर दिया जाता है।
  3. इसके बाद, हम AllErrors.txt नामक फ़ाइल बनाते हैं। यहीं पर सभी त्रुटि संदेश भेजे जाएंगे। हम सभी त्रुटि संदेशों वाली स्ट्रिंग str को इस फ़ाइल में लिखते हैं।
  4. अंत में, हम उपयोगकर्ता को ErrorPage.html फ़ाइल में स्थानांतरित करते हैं।

आउटपुट: -

पेज ब्राउज़ करें http://localhost:53003/Demo1.aspx. याद रखें कि Demo1.aspx हमारे एप्लीकेशन में मौजूद नहीं है। फिर आपको नीचे दिया गया आउटपुट मिलेगा।

ASP.NET त्रुटि लॉगिंग

और साथ ही, यदि आप AllErrors.txt फ़ाइल खोलते हैं तो आपको नीचे दी गई जानकारी दिखाई देगी।

ASP.NET त्रुटि लॉगिंग

त्रुटि संदेश को बाद में डिबगिंग प्रयोजनों के लिए डेवलपर को भेजा जा सकता है।

अक्सर पूछे जाने वाले प्रश्न

जी हां। GitHub Copilot जैसे AI टूल ASP.NET कोड के लिए ब्रेकपॉइंट सुझा सकते हैं, किसी अपवाद की व्याख्या कर सकते हैं और समाधान प्रस्तावित कर सकते हैं। Revप्रत्येक सुझाव को ध्यान से देखें और स्वयं बग को दोबारा उत्पन्न करें, क्योंकि एआई एप्लिकेशन-विशिष्ट स्थिति को गलत तरीके से समझ सकता है।

हाँ। मशीन लर्निंग की विशेषताएं जैसे उपकरणों में मौजूद होती हैं। Azure एप्लीकेशन इनसाइट्स असामान्य रूप से बढ़ी हुई त्रुटियों या धीमी अनुरोधों को स्वचालित रूप से चिह्नित कर सकता है। इससे टीमों को लॉग फ़ाइलों को मैन्युअल रूप से स्कैन करने की तुलना में उत्पादन संबंधी समस्याओं को तेज़ी से खोजने में मदद मिलती है।

नहीं। कस्टम एरर्स मोड को बंद रखने से स्टैक उजागर हो जाता है। tracयह त्रुटियाँ और संवेदनशील विवरण हर आगंतुक को दिखाई देते हैं, जो एक सुरक्षा जोखिम है। उत्पादन में RemoteOnly या On मोड का उपयोग करें ताकि केवल स्थानीय डेवलपर ही त्रुटि के पूर्ण विवरण देख सकें।

RemoteOnly विकल्प केवल स्थानीय सर्वर पर मौजूद ब्राउज़रों को ही विस्तृत त्रुटि पृष्ठ दिखाता है, जबकि दूरस्थ उपयोगकर्ताओं को डिफ़ॉल्ट रीडायरेक्ट पृष्ठ पर भेज दिया जाता है। यह जानकारी लीक किए बिना लाइव साइट को डीबग करने का एक सुरक्षित तरीका है।

web.config के कंपाइलेशन एलिमेंट में debug=”false” सेट करें। डीबग मोड ऑप्टिमाइजेशन को निष्क्रिय कर देता है, टाइमआउट को लंबा रखता है और मेमोरी का उपयोग बढ़ा देता है, इसलिए प्रोडक्शन साइट्स में इसे हमेशा बंद रखना चाहिए। विजुअल स्टूडियो.

नहीं। एक खुला trace.axd हमलावरों को हेडर, सेशन और सर्वर वैरिएबल का खुलासा कर सकता है। localOnly=”true” सेट करें या इसे अक्षम करें। tracतैनाती से पहले पूरी तरह से tracई-डेटा कभी भी दूरस्थ उपयोगकर्ताओं के सामने उजागर नहीं होता है।

Server.Transfer ब्राउज़र को बदले बिना अनुरोध को सर्वर पर त्रुटि पृष्ठ पर अग्रेषित करता है। URL या राउंड ट्रिप करना। Response.Redirect ब्राउज़र को एक नया अनुरोध भेजता है, जिससे अपडेट हो जाता है। URL त्रुटि पृष्ठ पर।

अपवाद संदेश और स्टैक को कैप्चर करें tracई, अनुरोध किया गया URLटाइमस्टैम्प और उपयोगकर्ता संदर्भ जैसी जानकारी। ये विवरण डेवलपर्स को बाद में विफलता को दोहराने में मदद करते हैं। Application_Error में Server.GetLastError अपवाद को उजागर करता है ताकि आप इसे फ़ाइल या डेटाबेस में लिख सकें।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: