2011-10-05 11 views
9

पर मेरे पास नहीं है मेरे पास मेरे ASP.NET ऐप में कुछ कोड है जो Global.asax.cs कोड फ़ाइल में है। Application_Start, Session_Start और Application_Begin Request में मैंने कुछ ब्रेकपॉइंट सेट किए हैं। हालांकि इनमें से कोई भी कभी हिट नहीं होता है। मैं अपनी स्थानीय मशीन पर वीएस 8 के साथ काम कर रहा हूं।global.asax ब्रेकपॉइंट

यहाँ मैं क्या कोशिश की है:

  • एएसपी देव सर्वर
  • हटाए गए सभी ASP.NET अस्थाई फ़ाइलें
  • बनाया नया Global.asax
  • वी.एस. और उद्घाटन समापन वापस रूका अप
  • स्वच्छ और पुनर्निर्माण परियोजना

इनके बाद मेरी कोशिश करने पर, ब्रेकपॉइंट्स हिट नहीं होंगे।

कोई विचार यह क्यों हो सकता है?

+0

में स्टार्टअप तरीकों में से किसी से जगह है और breakpoints हिट करने के लिए सक्षम होने के कारण है कि आप कुछ System.Diagnostics.Debug.WriteLine (...) डाल करने के लिए कोशिश मत करो चाहिए; उन सभी घटनाओं में और विजुअल स्टूडियो से समाधान चलाने के दौरान आउटपुट विंडो की जांच करें? क्या आप कुछ देखते हैं? –

+2

देखें [यह उत्तर] (http://stackoverflow.com/questions/1960651/it-is-possible-to-debug-global-asax/4809464#4809464) - क्या यह आपके मामले में मदद करता है? –

+0

क्या आप इन तरीकों की वास्तविक घोषणाओं को पेस्ट कर सकते हैं? शायद आपने उन्हें गलत तरीके से घोषित कर दिया है। –

उत्तर

24

मैंने इसी समस्या में भाग लिया है। मुझे लगता है कि आप वीएस विकास सर्वर के बजाय अपने स्थानीय आईआईएस का उपयोग कर रहे हैं। यदि ऐसा है, तो आप Global.asax.cs फ़ाइल में इस कोड के माध्यम से डीबग/चरण नहीं कर पाएंगे क्योंकि जब तक डीबगर संलग्न होता है, तो यह कोड पहले ही आईआईएस में निष्पादित हो चुका है। हालांकि, यदि आप देव सर्वर का उपयोग करते हैं, तो आपके पास इस कोड को प्राप्त करने की क्षमता है क्योंकि डीबगर पहले ही संलग्न हो जाएगा।

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

यह विजुअल स्टूडियो>Project Properties>Web tab>Use Visual Studio Development Server के भीतर अपने प्रोजेक्ट पर राइट क्लिक करके पाया जा सकता है।

System.Diagnostics.Debugger.Break(); कि Application_Start() विधि करने के लिए:

+0

यह मेरे लिए बहुत अच्छा काम करता है। एक स्वीकार्य उत्तर होना चाहिए – Kevin

+4

वीएस 2013 में विजुअल स्टूडियो डेवलपमेंट सर्वर गायब है, @Ofiris उत्तर –

4

मुझे क्या मदद मिली जोड़ने के लिए किया गया था।

+0

मदद नहीं करता है AppPool त्रुटि मिली। – QMaster

2

एक परियोजना पर मैं पर काम कर रहा था, विकल्प "बाहरी कार्यक्रम शुरू करें" टैब में चयनित किया गया था:

दृश्य स्टूडियो> प्रोजेक्ट गुण> वेब

यह breakpoints के लिए पैदा कर रहा था हिट नहीं किया।

"वर्तमान पृष्ठ" में "प्रारंभ कार्य" को बदलना मेरे लिए इस समस्या को ठीक करता है।

0

जैसा कि किसी अन्य उत्तर में मिलता है, ग्लोबल.एक्सएक्स कोड डीबगर को संलग्न करने का मौका मिलने से पहले चलाएगा। इसके आस-पास पहुंचने के लिए आप डीबगिंग शुरू कर सकते हैं, फिर आईआईएस में जाएं और एप्लिकेशन को रोकें/शुरू करें, जिसके बाद डीबगर को पुनरारंभ करना चाहिए।

0

मुझे यह समस्या दो बार थी। यह पहली परियोजना मेरे साथ हुई, मैं प्रोजेक्ट प्रॉपर्टीज-> बिल्ड-> एडवांस्ड ... पर गया और डीबग इन्फो ड्रॉपडाउन से "पूर्ण" चुना।

दूसरी बार, मेरे ग्लोबल.एक्सएक्स में ब्रेकपॉइंट्स हमें हिट नहीं किया जा रहा है, लेकिन अगर मैंने ब्रेकपॉइंट पर आच्छादित किया तो यह चेतावनी दी: "स्रोत कोड मूल संस्करण से अलग है।"

मुझे अंत में पता चला कि इस मामले में, मैंने कोड को संरक्षित करने के लिए इस प्रोजेक्ट की बैकअप प्रति बना ली थी और प्रतिलिपि के साथ काम कर रहा था। भले ही यह एक अलग फ़ोल्डर में था, फिर भी यह डीएलएल का उपयोग कर रहा था मूल की वर्चुअल निर्देशिका: http://localhost:4952/

तो मैं बदल कि परियोजना गुण में> वेब-> परियोजना यूआरएल मैं सिर्फ बंदरगाह http://localhost:49523/ लिए बदल गया और यह काम किया

यह मेरे वर्चुअल निर्देशिका बनाने के लिए कहा।। , मैं हाँ कहा और बाद breakpoints के साथ कोई समस्या नहीं पड़ा है।

1

तो y सुनिश्चित करें कि इस्तेमाल किया आवेदन पूल पहुंच कर चल रहा है - कहां दृश्य स्टूडियो विकास सर्वर का उपयोग करें और, आप किसी जारी राज्य में निम्नलिखित (VS2015 व्यावसायिक में परीक्षण)

1) आवेदन पूल कर सकते हैं आईआईएस का उपयोग नहीं करना चाहते हैं आपके वेब ऐप से एक पृष्ठ (इसे निष्क्रिय निष्क्रिय समय के कारण रोक दिया जा सकता है)। Ctrl-Alt-P या Debug -> Attach to Process - -> अपने w3wp प्रक्रिया है कि आपके आवेदन से मेल खाती है देखने

2) कार्रवाई करने के लिए देते हैं।

प्रक्रिया के लिए संलग्न बहुत ReAttach extension जो हाल ही में संलग्न प्रक्रियाओं के लिए शॉर्टकट बना देता है का उपयोग करके तेज किया जा सकता है।

3) आवेदन पूल रीसायकल - सुनिश्चित करें कि कि अनुप्रयोग पूल, भी तेजी से या तो प्रवेश करने आईआईएस द्वारा recycles और यह रीसाइक्लिंग या, web.config में प्रवेश नहीं-प्रभाव परिवर्तन करके (टैग के कुछ खाली बाहर कर दिया) और इसे

4) डिबगिंग प्रारंभ करें - अपने वेब एप्लिकेशन से किसी भी पृष्ठ पर प्रारंभ करने के लिए अनुरोध करें। आप Global.asax

protected void Application_Start() 
void Application_BeginRequest(Object sender, EventArgs e) 
protected void Session_Start(object sender, EventArgs e) 
+0

सही लेकिन उपयोगी नहीं है: web.config दर्ज करना, कोई प्रभाव नहीं बदलना (टैग के बाहर कुछ खाली रखें) और इसे सहेजना। योग्य +1 :) – QMaster