Asp.Net पेज लेवल Tracडीबगिंग, त्रुटि प्रबंधन
⚡ स्मार्ट सारांश
ASP.NET डिबगिंग tracविजुअल स्टूडियो में प्रोग्रामिंग और त्रुटि प्रबंधन डेवलपर्स को समस्याओं को जल्दी पकड़ने और अनुरोधों का पालन करने में मदद करते हैं। trace.axd का उपयोग करें, और विकास और उत्पादन जीवनचक्र के दौरान अनहैंडल्ड अपवाद होने पर उपयोगकर्ताओं को कस्टम त्रुटि पृष्ठों पर पुनर्निर्देशित करें।
किसी भी एप्लिकेशन में विकास प्रक्रिया के दौरान त्रुटियाँ होना स्वाभाविक है। त्रुटियों को शुरुआती चरण में ही पहचान पाना महत्वपूर्ण है।
विजुअल स्टूडियो में, ASP.NET अनुप्रयोगों के लिए ऐसा करना संभव है। विजुअल स्टूडियो का उपयोग डिबगिंग के लिए किया जाता है और इसमें ASP.NET के लिए त्रुटि प्रबंधन तकनीकें मौजूद हैं।
ASP.NET में डिबगिंग क्या है?
डीबगिंग एप्लिकेशन में ब्रेकपॉइंट जोड़ने की प्रक्रिया को ब्रेकपॉइंट कहते हैं। इनका उपयोग चल रहे प्रोग्राम के निष्पादन को रोकने के लिए किया जाता है। इससे डेवलपर को यह समझने में मदद मिलती है कि किसी प्रोग्राम में किसी विशेष समय पर क्या हो रहा है।
आइए एक प्रोग्राम का उदाहरण लेते हैं। यह प्रोग्राम उपयोगकर्ता को "हम डीबग कर रहे हैं" स्ट्रिंग दिखाता है। मान लीजिए कि जब हम एप्लिकेशन चलाते हैं, तो किसी कारणवश यह स्ट्रिंग प्रदर्शित नहीं होती है। समस्या का पता लगाने के लिए हमें एक ब्रेकपॉइंट जोड़ना होगा। हम उस कोड लाइन पर ब्रेकपॉइंट जोड़ सकते हैं जहाँ स्ट्रिंग प्रदर्शित होती है। यह ब्रेकपॉइंट प्रोग्राम के निष्पादन को रोक देगा। इस बिंदु पर, प्रोग्रामर देख सकता है कि संभवतः क्या गड़बड़ हो रही है। प्रोग्रामर तदनुसार प्रोग्राम को ठीक करता है।
इस उदाहरण में, हम अपने डेमो एप्लिकेशन का उपयोग करेंगे जिसे हमने पिछले अध्यायों में बनाया था। निम्नलिखित उदाहरण में, हम देखेंगे:
- डेमो एप्लीकेशन को स्ट्रिंग प्रदर्शित करने हेतु कैसे तैयार करें।
- किसी एप्लिकेशन में ब्रेकपॉइंट कैसे जोड़ें?
- इस ब्रेकपॉइंट का उपयोग करके एप्लिकेशन को डीबग कैसे करें।
ASP.NET में किसी एप्लिकेशन को डीबग कैसे करें
ASP.NET में डेमो एप्लिकेशन बनाने, ब्रेकपॉइंट जोड़ने और डीबग करने के लिए नीचे दिए गए चरण हैं:
चरण 1) विजुअल स्टूडियो में एप्लिकेशन खोलें।
सबसे पहले, सुनिश्चित करें कि हमारा वेब एप्लिकेशन विजुअल स्टूडियो में खुला हुआ है। सुनिश्चित करें कि डेमो एप्लिकेशन विजुअल स्टूडियो में खुला हुआ है।
चरण 2) अब Demo.aspx.cs फ़ाइल खोलें और नीचे दी गई कोड लाइन जोड़ें।
- हम केवल एक स्ट्रिंग प्रदर्शित करने के लिए कोड लाइन Response.Write जोड़ रहे हैं।
- इसलिए जब एप्लिकेशन निष्पादित होता है, तो उसे वेब ब्राउज़र में "हम डिबगिंग कर रहे हैं" स्ट्रिंग प्रदर्शित करनी चाहिए।
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
चरण 3) एप्लिकेशन में एक ब्रेकपॉइंट जोड़ें।
ब्रेकपॉइंट विजुअल स्टूडियो में वह बिंदु है जहां आप प्रोग्राम का निष्पादन रोकना चाहते हैं।
- ब्रेकपॉइंट जोड़ने के लिए, आपको उस कॉलम पर क्लिक करना होगा जहाँ आप ब्रेकपॉइंट लगाना चाहते हैं। उदाहरण के लिए, हम चाहते हैं कि हमारा प्रोग्राम "Response.Write" कोड लाइन पर रुक जाए। ब्रेकपॉइंट जोड़ने के लिए किसी कमांड की आवश्यकता नहीं है। आपको बस उस लाइन पर क्लिक करना है जिस पर आप ब्रेकपॉइंट लगाना चाहते हैं।
- ऐसा करने के बाद, आप देखेंगे कि कोड लाल रंग में चिह्नित हो गया है। साथ ही, कोड लाइन के बगल वाले कॉलम में एक लाल बुलबुला भी आता है।
नोट: आप किसी एप्लिकेशन में कई ब्रेकपॉइंट जोड़ सकते हैं।
चरण 4) एप्लिकेशन को डीबगिंग मोड में चलाएं।
अब आपको अपने एप्लिकेशन को डीबगिंग मोड का उपयोग करके चलाने की आवश्यकता है। विज़ुअल स्टूडियो में, मेनू विकल्प डीबग-> डीबगिंग प्रारंभ करें चुनें।
आउटपुट: -
जब आप सभी चरणों को सही ढंग से निष्पादित करेंगे, तो प्रोग्राम का निष्पादन रुक जाएगा। विज़ुअल स्टूडियो ब्रेकपॉइंट पर जाएगा और कोड की लाइन को पीले रंग से चिह्नित करेगा।
अब, अगर प्रोग्रामर को लगता है कि कोड गलत है, तो निष्पादन को रोका जा सकता है। फिर कोड को तदनुसार संशोधित किया जा सकता है। प्रोग्राम को आगे बढ़ाने के लिए, प्रोग्रामर को कीबोर्ड पर F5 बटन पर क्लिक करना होगा।
एचएमबी क्या है? TracASP.NET में काम करना?
आवेदन tracआईएनजी इससे यह पता चलता है कि अनुरोधित पृष्ठों में कोई त्रुटि तो नहीं है। tracयदि सक्षम है, तो एक अतिरिक्त पृष्ठ जिसे कहा जाता है trace.axd को एप्लिकेशन में जोड़ दिया गया है (नीचे दी गई छवि देखें)। यह पृष्ठ एप्लिकेशन से जुड़ा हुआ है और इसमें सभी अनुरोध और उनकी स्थिति दिखाई देगी।
कैसे सक्षम करें TracASP.NET में एक एप्लिकेशन के लिए आवेदन करना
आइए देखें कि इसे कैसे सक्षम किया जाए tracएक की तलाश में ASP.NET एप्लिकेशन:
चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से web.config फ़ाइल खोलें।
चरण 2) नीचे दी गई कोड की पंक्ति को web.config फ़ाइल में जोड़ें। tracई स्टेटमेंट का उपयोग सक्षम करने के लिए किया जाता है tracआवेदन के लिए आवेदन कर रहे हैं।
- अनुरोध सीमा में tracयह कथन पृष्ठ अनुरोधों की संख्या निर्दिष्ट करता है जिन्हें पूरा किया जाना है। tracएड.
- हमारे उदाहरण में, हम 40 की सीमा दे रहे हैं। हम सीमा इसलिए देते हैं क्योंकि इससे अधिक मान एप्लिकेशन के प्रदर्शन को खराब कर देगा।
<?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>
विजुअल स्टूडियो में डेमो एप्लिकेशन चलाएं।
आउटपुट: -
यदि अब आप ब्राउज़ करते हैं URL http://localhost:53003/trace.axdयहां आपको प्रत्येक अनुरोध की जानकारी दिखाई देगी। यहां आप देख सकते हैं कि आवेदन में कोई त्रुटि तो नहीं है। पृष्ठ पर निम्नलिखित प्रकार की जानकारी प्रदर्शित की जाती है:
- वेब पेज के लिए अनुरोध का समय.
- अनुरोधित वेब पेज का नाम।
- वेब अनुरोध का स्टेटस कोड (स्टेटस कोड 200 का मतलब है कि अनुरोध सफल रहा)।
- 'विवरण देखें' लिंक आपको वेब अनुरोध के बारे में अधिक जानकारी देखने की अनुमति देता है। इसमें दी गई एक महत्वपूर्ण जानकारी हेडर की जानकारी है, जो यह दर्शाती है कि प्रत्येक वेब अनुरोध के हेडर में कौन सी जानकारी भेजी जाती है।
पेज स्तर TracASP.NET में
पेज स्तर Tracआईएनजी ASP.NET में, यह वेब पेज के प्रोसेस होने के दौरान उससे जुड़ी सभी सामान्य जानकारी दिखाता है। पेज के किसी भी कारण से काम न करने की स्थिति में डीबगिंग के लिए यह जानकारी उपयोगी होती है। विजुअल स्टूडियो पेज के विभिन्न पहलुओं के बारे में विस्तृत जानकारी प्रदान करता है, जैसे कि वेब रिक्वेस्ट में कॉल किए गए प्रत्येक मेथड का समय।
उदाहरण के लिए, यदि आपके वेब एप्लिकेशन में प्रदर्शन संबंधी समस्या आ रही है, तो यह जानकारी समस्या को डीबग करने में सहायक हो सकती है। यह जानकारी एप्लिकेशन के विजुअल स्टूडियो में चलने पर प्रदर्शित होती है।
कैसे सक्षम करें TracASP.NET में पेज लेवल पर
आइए देखें कि पेज लेवल को कैसे सक्षम किया जाए tracASP.NET एप्लिकेशन के लिए:
चरण 1) चलिए, हम अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से demo.aspx फ़ाइल खोलें।
चरण 2) पेज को सक्षम करने के लिए नीचे दी गई कोड लाइन जोड़ें। tracपेज घोषणा में, बस एट्रिब्यूट जोड़ें। Trace=”true”। यह कोड लाइन पेज लेवल की अनुमति देगी। tracआईएनजी.
<%@ 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 में चलाएँ.
आउटपुट: -
अब जब वेब पेज Demo.aspx प्रदर्शित होगा, तो आपको पेज के बारे में बहुत सारी जानकारी मिलेगी। पेज जीवनचक्र के प्रत्येक पहलू के लिए समय जैसी जानकारी इस पेज पर प्रदर्शित की जाती है।
त्रुटि प्रबंधन: कस्टम त्रुटि पृष्ठ प्रदर्शित करना
In ASP.NET, आप उपयोगकर्ताओं को कस्टम त्रुटि पृष्ठ प्रदर्शित कर सकते हैं। यदि किसी एप्लिकेशन में किसी भी प्रकार की त्रुटि है, तो एक कस्टम पेज उपयोगकर्ता को यह त्रुटि प्रदर्शित करेगा।
हमारे उदाहरण में, हम सबसे पहले एक HTML पेज जोड़ेंगे। यह पेज उपयोगकर्ता को "हम समस्या की जांच कर रहे हैं" संदेश प्रदर्शित करेगा। इसके बाद हम अपने demo.aspx पेज में कुछ त्रुटि कोड जोड़ेंगे ताकि त्रुटि पेज प्रदर्शित हो सके। आइए नीचे दिए गए चरणों का पालन करें।
चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। चलिए एप्लिकेशन में एक HTML पेज जोड़ते हैं।
- सॉल्यूशन एक्सप्लोरर में डेमोएप्लिकेशन पर राइट-क्लिक करें।
- ऐड->एचटीएमएल पेज मेनू विकल्प चुनें।
चरण 2) अगले चरण में, हमें नए HTML पृष्ठ को एक नाम प्रदान करना होगा।
- नाम के रूप में ErrorPage प्रदान करें।
- आगे बढ़ने के लिए ओके बटन पर क्लिक करें।
चरण 3) एरर पेज विजुअल स्टूडियो में अपने आप खुल जाएगा। सॉल्यूशन एक्सप्लोरर में जाकर आप देख सकते हैं कि फाइल जुड़ गई है।
HTML पेज में "हम समस्या की जांच कर रहे हैं" कोड लाइन जोड़ें। वेब.कॉन्फ़िग फ़ाइल में बदलाव करने से पहले HTML फ़ाइल को बंद करने की आवश्यकता नहीं है।
<!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 प्रॉपर्टी को पिछले चरण में बनाए गए हमारे कस्टम त्रुटि पृष्ठ के नाम पर सेट किया जाता है।
<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 पेज में कुछ त्रुटिपूर्ण कोड जोड़ते हैं। सॉल्यूशन एक्सप्लोरर में इस फ़ाइल पर डबल-क्लिक करके इस पेज को खोलें।
नीचे दिए गए कोड को Demo.aspx.cs फ़ाइल में जोड़ें।
- कोड की ये पंक्तियाँ एक फ़ाइल से टेक्स्ट की पंक्तियों को पढ़ने के लिए डिज़ाइन की गई हैं।
- यह फाइल D ड्राइव में Example.txt नाम से स्थित होनी चाहिए।
- लेकिन हमारी स्थिति में, यह फ़ाइल वास्तव में मौजूद नहीं है। इसलिए जब एप्लिकेशन चलेगा तो यह कोड त्रुटि उत्पन्न करेगा।
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); } } }
अब कोड को निष्पादित करें विजुअल स्टूडियो और आपको नीचे दिया गया आउटपुट मिलना चाहिए।
आउटपुट: -
उपरोक्त पृष्ठ दर्शाता है कि एप्लिकेशन में एक त्रुटि उत्पन्न हुई है। परिणामस्वरूप, उपयोगकर्ता को ErrorPage.html पृष्ठ प्रदर्शित होता है।
ASP.NET अनहैंडल अपवाद
सर्वोत्तम परिस्थितियों में भी, ऐसी त्रुटियाँ हो सकती हैं जिनकी पहले से भविष्यवाणी नहीं की जा सकती। मान लीजिए कि कोई उपयोगकर्ता एप्लिकेशन में गलत पेज पर चला जाता है। यह ऐसी चीज है जिसकी भविष्यवाणी नहीं की जा सकती। ऐसे मामलों में, ASP.NET उपयोगकर्ता को ErrorPage.html पर रीडायरेक्ट कर सकता है।
आइए इसका एक उदाहरण देखते हैं।
- हम अपने उसी डेमो एप्लिकेशन का उपयोग करने जा रहे हैं जिसमें ErrorPage.html फ़ाइल है।
- और हम एक ऐसे वेब पेज को देखने का प्रयास करेंगे जो हमारे एप्लीकेशन में मौजूद नहीं है।
- इस स्थिति में हमें ErrorPage.html पेज पर रीडायरेक्ट किया जाना चाहिए। आइए इसे प्राप्त करने के चरणों को देखें।
चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से Global.asax.cs फ़ाइल खोलें।
नोट: Global.asax.cs फ़ाइल का उपयोग उस कोड को जोड़ने के लिए किया जाता है जो एप्लिकेशन के सभी पृष्ठों पर लागू होगा।
चरण 2) नीचे दी गई कोड की पंक्ति को Global.asax.cs फ़ाइल में जोड़ें। इन पंक्तियों का उपयोग त्रुटियों की जाँच करने और तदनुसार ErrorPage.html पृष्ठ प्रदर्शित करने के लिए किया जाएगा।
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 स्पष्टीकरण: -
- पहली पंक्ति Application_Error इवेंट हैंडलर है। जब भी किसी एप्लिकेशन में कोई त्रुटि होती है, तो यह इवेंट कॉल किया जाता है। ध्यान दें कि इवेंट का नाम Application_Error होना चाहिए और पैरामीटर ऊपर दिखाए गए अनुसार होने चाहिए।
- इसके बाद, हम HttpException क्लास प्रकार का एक ऑब्जेक्ट परिभाषित करते हैं। यह एक मानक ऑब्जेक्ट है जो त्रुटि के सभी विवरण रखेगा। फिर हम एप्लिकेशन में हुई अंतिम त्रुटि के सभी विवरण प्राप्त करने के लिए Server.GetLastError विधि का उपयोग करते हैं।
- इसके बाद हम जाँचते हैं कि पिछली त्रुटि का कोड 404 है या नहीं (404 वह मानक कोड है जो तब मिलता है जब कोई उपयोगकर्ता किसी ऐसे पृष्ठ को खोजने का प्रयास करता है जो नहीं मिलता)। यदि त्रुटि कोड मेल खाता है, तो हम उपयोगकर्ता को ErrorPage.html पृष्ठ पर भेज देते हैं।
अब कोड को विजुअल स्टूडियो में चलाएं और आपको नीचे दिया गया आउटपुट प्राप्त होना चाहिए।
आउटपुट: -
पेज ब्राउज़ करें http://localhost:53003/Demo1.aspx. याद रखें कि Demo1.aspx हमारे एप्लीकेशन में मौजूद नहीं है। फिर आपको नीचे दिया गया आउटपुट मिलेगा।
उपरोक्त पृष्ठ दर्शाता है कि एप्लिकेशन में एक त्रुटि उत्पन्न हुई है। परिणामस्वरूप, उपयोगकर्ता को ErrorPage.html पृष्ठ प्रदर्शित होता है।
ASP.NET त्रुटि लॉगिंग
एप्लिकेशन त्रुटियों को लॉग करने से डेवलपर को बाद में त्रुटि को डीबग करने और हल करने में मदद मिलती है। ASP.NET में त्रुटियों को लॉग करने की सुविधा है। यह त्रुटि कैप्चर होने पर Global.asax.cs फ़ाइल में किया जाता है। कैप्चरिंग प्रक्रिया के दौरान, त्रुटि संदेश को एक लॉग फ़ाइल में लिखा जा सकता है।
आइए इसका एक उदाहरण देखते हैं।
- हम अपने उसी डेमो एप्लिकेशन का उपयोग करने जा रहे हैं जिसमें ErrorPage.html फ़ाइल है।
- और हम एक ऐसे वेब पेज को देखने का प्रयास करेंगे जो हमारे एप्लीकेशन में मौजूद नहीं है।
- इस स्थिति में हमें अपने ErrorPage.html पृष्ठ पर पुनः निर्देशित किया जाना चाहिए।
- साथ ही, हम त्रुटि संदेश को एक लॉग फ़ाइल में लिखेंगे। आइए इसे करने के चरणों को देखें।
चरण 1) चलिए अपने डेमो एप्लिकेशन पर काम करते हैं। सॉल्यूशन एक्सप्लोरर से Global.asax.cs फ़ाइल खोलें।
चरण 2) नीचे दी गई कोड लाइन को Global.asax.cs में जोड़ें। यह त्रुटियों की जाँच करेगा और तदनुसार ErrorPage.html पेज प्रदर्शित करेगा। साथ ही, हम त्रुटियों का विवरण AllErrors.txt नामक फ़ाइल में लॉग करेंगे। हमारे उदाहरण के लिए, हम इस फ़ाइल को D ड्राइव पर बनाने के लिए कोड लिखेंगे।
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 स्पष्टीकरण: -
- पहली पंक्ति Server.GetLastError विधि का उपयोग करके त्रुटि प्राप्त करने के लिए है। फिर इसे exc नामक वेरिएबल को असाइन किया जाता है।
- इसके बाद हम str नाम का एक खाली स्ट्रिंग वेरिएबल बनाते हैं। हम exc.Message प्रॉपर्टी का उपयोग करके वास्तविक त्रुटि संदेश प्राप्त करते हैं। exc.Message प्रॉपर्टी में एप्लिकेशन चलाने के दौरान होने वाली किसी भी त्रुटि का सटीक संदेश होता है। फिर इसे स्ट्रिंग वेरिएबल को असाइन कर दिया जाता है।
- इसके बाद, हम AllErrors.txt नामक फ़ाइल बनाते हैं। यहीं पर सभी त्रुटि संदेश भेजे जाएंगे। हम सभी त्रुटि संदेशों वाली स्ट्रिंग str को इस फ़ाइल में लिखते हैं।
- अंत में, हम उपयोगकर्ता को ErrorPage.html फ़ाइल में स्थानांतरित करते हैं।
आउटपुट: -
पेज ब्राउज़ करें http://localhost:53003/Demo1.aspx. याद रखें कि Demo1.aspx हमारे एप्लीकेशन में मौजूद नहीं है। फिर आपको नीचे दिया गया आउटपुट मिलेगा।
और साथ ही, यदि आप AllErrors.txt फ़ाइल खोलते हैं तो आपको नीचे दी गई जानकारी दिखाई देगी।
त्रुटि संदेश को बाद में डिबगिंग प्रयोजनों के लिए डेवलपर को भेजा जा सकता है।





























