Asp.Net पृष्ठ स्तर अनुरेखण, डिबगिंग, त्रुटि हैंडलिंग (उदाहरण)

विषय - सूची:

Anonim

किसी भी आवेदन में, विकास प्रक्रिया के दौरान त्रुटियां होती हैं। प्रारंभिक चरण में त्रुटियों की खोज करने में सक्षम होना महत्वपूर्ण है।

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

इस ट्यूटोरियल में, आप सीखेंगे-

  • ASP.NET में डीबगिंग क्या है?
  • ASP.NET में ट्रेसिंग क्या है?
  • पृष्ठ स्तर अनुरेखण
  • त्रुटि हैंडलिंग: एक कस्टम त्रुटि पृष्ठ प्रदर्शित करना
  • ASP.NET अखंडित अपवाद
  • ASP.NET त्रुटि लॉगिंग

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

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

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

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

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

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

चरण 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) अब एक ब्रेकप्वाइंट जोड़ें। एक विराम बिंदु Visual Studio का एक बिंदु है जहाँ आप प्रोग्राम के निष्पादन को रोकना चाहते हैं।

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

नोट: - आप एक अनुप्रयोग में कई विराम बिंदु जोड़ सकते हैं

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

आउटपुट: -

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

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

ASP.NET में ट्रेसिंग क्या है?

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

आइए देखें कि किसी एप्लिकेशन के लिए ट्रेसिंग को कैसे सक्षम किया जाए।

चरण 1) आइए हमारे 'डेमोएप्लीकेशन' पर काम करते हैं। समाधान एक्सप्लोरर से web.config फ़ाइल खोलें।

चरण 2) Web.config फ़ाइल में कोड की निचली पंक्ति जोड़ें।

ट्रेस स्टेटमेंट का उपयोग एप्लिकेशन के लिए ट्रेसिंग को सक्षम करने के लिए किया जाता है।

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

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

आउटपुट: -

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

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

पृष्ठ स्तर अनुरेखण

पेज ट्रेसिंग एक वेब पेज के बारे में सभी सामान्य जानकारी दिखाता है जब इसे संसाधित किया जा रहा है। यदि पृष्ठ किसी कारण से काम नहीं करता है तो यह डीबगिंग में उपयोगी है।

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

आइए देखें कि पृष्ठ स्तर पर किसी एप्लिकेशन के लिए ट्रेसिंग को कैसे सक्षम किया जाए।

चरण 1) चलो हमारे DemoApplication पर काम करते हैं। समाधान एक्सप्लोरर से Demo.aspx फ़ाइल खोलें

चरण 2) पृष्ठ अनुरेखण को सक्षम करने के लिए कोड की निचली पंक्ति जोड़ें। पृष्ठ घोषणा में, बस रेखा को जोड़ दें Trace = "true"। यह कोड लाइन पृष्ठ स्तर अनुरेखण की अनुमति देगा।

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

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

त्रुटि हैंडलिंग: एक कस्टम त्रुटि पृष्ठ प्रदर्शित करना

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

हमारे उदाहरण में, हम पहले एक HTML पेज जोड़ने जा रहे हैं। यह पृष्ठ उपयोगकर्ता को एक स्ट्रिंग दिखाएगा "हम समस्या को देख रहे हैं"। फिर हम अपने डेमो.aspx पेज पर कुछ त्रुटि कोड जोड़ेंगे ताकि त्रुटि पृष्ठ दिखाया जाए।

नीचे बताए गए स्टेप्स को फॉलो करें

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

  1. समाधान एक्सप्लोरर में DemoApplication पर राइट-क्लिक करें
  2. मेनू विकल्प 'जोड़ें' -> एचटीएमएल पेज चुनें

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

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

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

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

We are looking into the problem

चरण 4) अब आपको web.config फ़ाइल में एक बदलाव करने की आवश्यकता है। यह परिवर्तन सूचित करेगा कि जब भी आवेदन में कोई त्रुटि होती है, तो कस्टम त्रुटि पृष्ठ प्रदर्शित करने की आवश्यकता होती है।

'CustomErrors' टैग कस्टम त्रुटि पृष्ठ को परिभाषित करने की अनुमति देता है। DefaultRedirect प्रॉपर्टी पिछले चरण में बनाई गई हमारी कस्टम त्रुटि पृष्ठ के नाम पर सेट है।

चरण 5) अब कुछ दोषपूर्ण कोड को Demo.aspx.cs पेज पर जोड़ें। इस पृष्ठ को समाधान एक्सप्लोरर में फ़ाइल को डबल-क्लिक करके खोलें

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

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

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

अब Visual Studio में कोड निष्पादित करें और आपको नीचे आउटपुट मिलना चाहिए।

आउटपुट: -

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

ASP.NET अखंडित अपवाद

यहां तक ​​कि सबसे अच्छे परिदृश्यों में, त्रुटियों के मामले हो सकते हैं जो कि केवल पूर्वाभास नहीं हैं।

मान लीजिए अगर कोई उपयोगकर्ता एप्लिकेशन में गलत पेज पर पहुंचता है। यह ऐसी चीज है जिसकी भविष्यवाणी नहीं की जा सकती है। ऐसे मामलों में, ASP.Net उपयोगकर्ता को errorpage.html पर पुनर्निर्देशित कर सकता है।

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

  • हम अपने उसी 'DemoApplication' का उपयोग करने जा रहे हैं जिसमें Errorpage.html है।
  • और हम एक वेब पेज देखने की कोशिश करेंगे जो हमारे आवेदन में मौजूद नहीं है।
  • हमें इस मामले में अपने ErrorPage.html पृष्ठ पर पुनर्निर्देशित किया जाना चाहिए। आइए देखें इसे हासिल करने के उपाय।

चरण 1) चलो हमारे DemoApplication पर काम करते हैं। समाधान एक्सप्लोरर से Global.asax.cs फ़ाइल खोलें

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

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

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

कोड स्पष्टीकरण: -

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

अब Visual Studio में कोड चलाएं और आपको नीचे आउटपुट मिलना चाहिए

आउटपुट: -

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

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

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

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

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

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

चरण 1) चलो हमारे DemoApplication पर काम करते हैं। समाधान एक्सप्लोरर से Global.asax.cs फ़ाइल खोलें

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

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

कोड स्पष्टीकरण: -

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

आउटपुट: -

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

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

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

सारांश

  • ASP.Net में डीबगिंग और एरर हैंडलिंग करने की सुविधा है।
  • कोड में ब्रेकपॉइंट जोड़कर डीबगिंग प्राप्त की जा सकती है। एक तो कोड को डीबग करने के लिए Visual Studio में प्रारंभ डीबगिंग विकल्प के साथ चलाता है।
  • अनुरेखण आवेदन चलाते समय अधिक जानकारी प्रदान करने की सुविधा है। यह आवेदन या पृष्ठ स्तर पर किया जा सकता है।
  • पृष्ठ स्तर पर, कोड ट्रेस = सच्चे को पृष्ठ के निर्देश में जोड़ना होगा।
  • आवेदन स्तर पर, Trace.axd नामक एक अतिरिक्त पृष्ठ एप्लिकेशन के लिए बनाया गया है। यह सभी आवश्यक ट्रेसिंग जानकारी प्रदान करता है।