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




asp.net wcf (20)

Web.config में इस समस्या को ठीक करने के लिए मुझे बस debug="true" जोड़ना पड़ा

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

मुझे इस समाधान को खोजने में मदद मिली है, जबकि डिबगिंग करते समय मॉड्यूल विंडोज़ को देख रहा था और देखा कि मेरे एएसपी.नेट डीएलएल के लिए लोड किया गया था: बाइनरी डीबग जानकारी के साथ नहीं बनाया गया था।

ठीक है, मेरे पास क्या है:

विजुअल स्टूडियो 2010 आरसी, डब्ल्यू 7 एक्स 64 ने सिल्वरलाइट एप्लिकेशन का एक नया प्रोजेक्ट प्रकार शुरू किया। एक एएसपी.नेट वेब अनुप्रयोग परियोजना में सिल्वरलाइट एप्लिकेशन को होस्ट करना। सिल्वरलाइट संस्करण 3.0। एक LinqToSQL कक्षा, एक डब्ल्यूसीएफ सेवा, एक विनफॉर्म परीक्षक आवेदन (समाधान में परियोजना) और कुछ वर्गों (समाधान में परियोजनाओं के रूप में भी) जोड़ा गया।

कल, अचानक मुझे मिल गया 'ब्रेकपॉइंट वर्तमान में हिट नहीं होगा। इस दस्तावेज़ के लिए कोई प्रतीक लोड नहीं किया गया है। ' आईडीई में दिखाई देने वाला संदेश, लेकिन यह केवल वेब एप्लाइक्शन को प्रभावित करता है, मैं सिल्वरलाइट और विनफॉर्म ऐप को डीबग कर सकता हूं।

संदेश से छुटकारा पाने के लिए मैंने क्या किया / किया:

  • विजुअल स्टूडियो सेटिंग्स रीसेट करें
  • प्रत्येक \ Temporary ASP.NET फ़ाइलें फ़ोल्डर में सभी फ़ाइलों को हटा दिया गया है (प्रत्येक 32 बिट / 64 बिट के लिए और फ्रेमवर्क 2.0 और 4.0 के लिए एक है)
  • विजुअल स्टूडियो इंटीग्रेटेड वेब सर्वर का उपयोग करके डीबग करने का प्रयास किया - आम तौर पर मैं समाधान के प्रोजेक्ट आउटपुट में आईआईएस का उपयोग करता हूं, मैंने प्रत्येक प्रोजेक्ट फ़ोल्डर में प्रत्येक ओबीजे और बिन फ़ोल्डरों को हटा दिया
  • एक नया समाधान बनाया और सभी नए परियोजनाओं को इस नए समाधान में जोड़ा
  • समाधान सुओ फ़ाइल हटा दी
  • यह एक परीक्षण करने के लिए एक नया एएसपी.NET वेब अनुप्रयोग बनाया है यदि यह एक वीएस-स्थापना समस्या है => मैं इस नई परियोजना / समाधान को डीबग कर सकता हूं
  • कई बार मशीन रीबूट किया
  • vs.net स्थापना की मरम्मत की
  • एक आईआईएसआरसेट किया था
  • आईआईएस से वेब ऐप हटा दिया
  • आईआईएस में एक नया वेब ऐप बनाने के लिए वेब ऐप की प्रोजेक्ट प्रॉपर्टीज के तहत वर्चुअल डायरेक्टरी बटन बनाएं
  • 3.5 से 4.0 तक प्रत्येक परियोजना के फ्रेमवर्क संस्करण को बदल दिया
  • मेरी दूसरी मशीन => एक ही व्यवहार पर समाधान खोल दिया
  • बग / इसी तरह के मुद्दों के लिए माइक्रोसॉफ्ट कनेक्ट क्रॉल
  • स्पेंट 7 घंटे

तो, यह मेरे जीवन में दूसरी बार होता है। पिछली बार मैंने इसे अस्थायी एएसपी.नेट फाइल फ़ोल्डर को हटाकर हल किया, लेकिन इस बार मुझे आपकी मदद की ज़रूरत है।


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

1- बेवन ने कहा, आप एक और आवेदन डीबग कर सकते हैं!

2- आप एक ही आवेदन के दूसरे संस्करण को डिबग कर रहे हैं। उदाहरण के लिए, आपने पूर्व निर्मित अनुप्रयोग को कोड के वर्तमान संस्करण के साथ डिबगिंग के लिए बिना (रे) बनाने के लिए संलग्न किया है।

समाधान की सफाई या पुनर्निर्माण मेरे लिए ऐसी समस्याएं हल करता है।

यह सुनिश्चित करने के लिए कि समस्या आपकी नहीं है, उसी एप्लिकेशन को वीएस 2008 के साथ डीबग करने का प्रयास करें (मुझे डर है कि यह वीएस 2010 में एक बग हो सकता है - यह अभी भी बीटा है!)।


एक और उपाख्यान जो उपयोगी हो सकता है-

मुझे इस समस्या का सामना करना पड़ा जब मेरी एक परियोजना रिलीज आउटपुट फ़ोल्डर से फ़ाइल संदर्भों का उपयोग कर रही थी। जब निर्माण के सामान किसी सामान फ़ोल्डर में रखा गया था, तो इन रिलीज डीएलएस डीबग डीएलएस को ओवरराइट कर रहे थे।

समाधान csproj फ़ाइल में सुनिश्चित करना था, मेरे संदर्भ का हिंटपाथ था

<HintPath>..\..\Core\Goods\$(Configuration)\MyFramework.dll</HintPath>

और नहीं

<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>


एक ही समस्या थी

किसी कारण से, जीएसी में डीएलएल में से एक पंजीकृत था, इसलिए कोड के मुकाबले इसका हमेशा एक अलग संस्करण था।

एक बार जब मैंने इसे जीएसी से हटा दिया, तो समस्या हल हो गई


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

यही है, एप्लिकेशन सर्वर से एप्लिकेशन चला रहा है

C:\dev\MyApplication\bin 

लेकिन विजुअल स्टूडियो से डिबगिंग है

C:\dev\MyOtherApplication\bin (or something along those lines, anyway).

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

अपडेट करें :

आईआईएस के लिए अनुप्रयोग सर्वर निर्देशिका (यानी C:\dev\MyApplication ऊपर) वेब अनुप्रयोग के लिए कॉन्फ़िगर की गई भौतिक निर्देशिका है - इसे ऐप के लिए मूल सेटिंग्स बदलकर नियंत्रित किया जा सकता है।

विजुअल स्टूडियो के लिए डीबगिंग निर्देशिका (यानी C:\dev\MyOtherApplication ऊपर) वह निर्देशिका है जिसमें आपकी svc फ़ाइलें पाई जाती हैं, आमतौर पर आपकी csproj परियोजना फ़ाइल के समान निर्देशिका होती है।


ठीक है- यहां हम जाते हैं:

("Silverlight ऐप" में: कृपया पहले जांचें कि आपके सर्वर प्रोजेक्ट "गुण" में "वेब" में चांदी की रोशनी की जांच की गई है - अगर उसने इसे हल नहीं किया है तो इसे नीचे आज़माएं)

पहली बार ऐसा करें: इसे पहले चलाएं: devenv.exe / रीसेट सेटिंग्स और 1: शीर्ष मेनू में डीबग टैग 2 पर क्लिक करें: विकल्प और सेटिंग्स पर क्लिक करें 3: "डीबगिंग" में और "सामान्य" के अंतर्गत "सक्षम। नेट फ्रेमवर्क स्रोत स्टेपिंग" 4: बॉक्स पर टिकटें। 5: और अब सभी प्रतीकों को डाउनलोड और पुन: कॉन्फ़िगर किया जाएगा :)

यदि उपर्युक्त के बाद यह फिर से होता है तो उस फ़ोल्डर को साफ़ करें जहां प्रतीकों हैं:

1: शीर्ष मेनू में डीबग टैग 2 पर क्लिक करें: विकल्प और सेटिंग्स पर क्लिक करें 3: "डिबगिंग" में और "प्रतीकों" के नीचे बटन "खाली प्रतीक कैश" ढूंढें और इसे क्लिक करें।


ब्राउज़र से वेब एप्लिकेशन यूआरएल खोलें और फिर वीएस.Net आईडीई में टूल्स -> अटैचटो प्रोसेस का उपयोग करें

फिर aspnet_wp.exe से संलग्न करें।

डीबगर काम करना शुरू कर देगा


मुझे एक ही समस्या थी - विजुअल स्टूडियो में काम करने के लिए बहुत समय खो गया।

यह Nuget होने के समाप्त हो गया - मेरे पास Newtonsoft.Json के 3 संस्करण थे (7 सी # परियोजनाओं में)। समाधान संकलित होगा लेकिन डिबगबल नहीं था।

मैंने Nuget के पैकेज प्रबंधक कंसोल में निम्न को चलाकर समस्या को ठीक किया:

पीएम> अपडेट-पैकेज न्यूटॉन्सॉफ्ट.जेसन


मुझे एक ही समस्या थी, मैं अपनी परियोजना को डीबग कर रहा था, और मुझे प्रोजेक्ट पर राइट क्लिक करना पड़ा और "नया डीबग इंस्टेंस" चुनें। मुझे केवल एक बार ऐसा करने की ज़रूरत थी, उसके बाद यह सामान्य के रूप में काम करता था।


मुझे रजिस्ट्री से .dll के सभी उदाहरण मैन्युअल रूप से अनइंस्टॉल करना था, और मेरे स्थानीय ड्राइव से .dll के सभी उदाहरणों को मैन्युअल रूप से अनइंस्टॉल करना पड़ा। अनइंस्टॉल / मेरे ऐप को दोबारा इंस्टॉल किया गया और अब ब्रेकपॉइंट्स मार रहा हूँ! ऐसा करने में आधा दिन बर्बाद हो गया :(।


मेरी समस्या को छोड़कर मुझे एक ही समस्या थी - मेरे पास 2 अलग-अलग बंदरगाहों के तहत चल रहे अंतर्निर्मित वेब सर्वर के 2 उदाहरण थे और मेरे पास एक प्रोजेक्ट -> गुण -> वेब -> "प्रारंभ यूआरएल" एक निश्चित बंदरगाह पर इशारा करता था लेकिन वेब ऐप वास्तव में उस बंदरगाह के नीचे नहीं चल रहा था। तो मेरा ब्राउज़र "स्टार्ट यूआरएल" पर रीडायरेक्ट किया जा रहा था जिसे 1539 में संदर्भित किया गया था लेकिन कोड / डीबग इंस्टेंस पोर्ट 50803 के तहत चल रहा था।

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


मेरे डब्ल्यूपीएफ ऐप के लिए, मैंने एप्लिकेशन फ़ोल्डर को हटा दिया, फिर से स्रोत नियंत्रण से "नवीनतम प्राप्त करें", और पुनर्निर्मित किया। सभी ब्रेकपॉइंट्स अब महान काम कर रहे हैं।


मेरे पास यह बहुत ही मुद्दा था जब एक ग्राहक पर - प्रत्येक एप्लिकेशन समाधान के लिए - उन्होंने अधिकतर साझा असेंबली को " संदर्भ " फ़ोल्डर में कॉपी किया, फिर समाधान के भीतर उन्हें " समाधान आइटम " और " परियोजना " के रूप में समाधान में जोड़ा।

अभी तक निश्चित नहीं है, लेकिन उनमें से कुछ डिबग करने योग्य थे, कुछ नहीं, भले ही असेंबली के लिए संदर्भ सेटिंग्स में सही पूर्ण पथ निर्दिष्ट किए गए थे।

इस अप्रत्याशित व्यवहार ने मुझे पागल कर दिया :)

मैंने " संदर्भ " फ़ोल्डर से सभी असेंबली को हटाकर हल किया जिसके लिए स्रोत कोड के साथ प्रोजेक्ट थे, और साझा असेंबली के लिए संस्करण जानकारी का बहुत अच्छा ट्रैक रखते हुए।


मेरे मामले में एक ही समस्या का समाधान चरणों का निम्नलिखित संयोजन था:

  1. समाधान -> गुण एकाधिक स्टार्टअप प्रोजेक्ट का चयन करें उन परियोजनाओं पर प्रारंभ करें चुनें जिन्हें आपको डीबग करने की आवश्यकता है।
  2. सेवा संदर्भों से सेवा को हटा दिया गया और समाधान को साफ किया गया।
  3. सेवा परियोजना को पुनर्निर्माण करें
  4. इसे वापस सेवा संदर्भ में जोड़ा गया
  5. समाधान को साफ करें और इसे पुनर्निर्माण करें।

मेरे लिए समस्या यह साबित हुई कि गुण-> Build-> डीबग कॉन्फ़िगरेशन में कोड को अनुकूलित करें चेकबॉक्स चालू कर दिया गया था। इसे बंद कर दिया, पुनर्निर्मित, और डीबगिंग सामान्य के रूप में काम किया।


मैंने सिल्वरलाइट अनुप्रयोगों को तैनात करने के अनुसार इस मुद्दे को हल किया है। (यह उत्तर कुछ अन्य लोगों का डुप्लिकेट है लेकिन मैं इसे और अधिक अच्छी तरह से समझाने का प्रयास करूंगा।)

समस्या सबसे अधिक संभावना है कि आपके सिल्वरलाइट एप्लिकेशन को बिल्ड / स्टार्टअप पर आपके वेब एप्लिकेशन पर ठीक से तैनात नहीं किया जा रहा है। यह एक संदर्भ समस्या है - यह समझना आसान है लेकिन पहली बार जब आप इसे सामना करते हैं तो स्पष्ट नहीं है।

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

  • अपने प्रोजेक्ट पर राइट क्लिक करें, और 'Properties' चुनें
  • बाईं ओर 'सिल्वरलाइट अनुप्रयोग' टैब का चयन करें
  • 'जोड़ें ...' बटन दबाएं और संवाद बॉक्स से अपनी सिल्वरलाइट परियोजना का चयन करें

यह आपके होस्टिंग वेब ऐप से सिल्वरलाइट एप्लिकेशन का संदर्भ जोड़ता है, और यह सुनिश्चित करता है कि xap फ़ाइल को वेब ऐप पर बिल्ड या तैनाती पर कॉपी किया जाएगा। इसका मतलब है कि मौजूदा सिल्वरलाइट ऐप और इसकी डीबग फ़ाइलें एप्लिकेशन के अंदर डीबग होने के अंदर हैं, और आप कोड के माध्यम से कदम उठाने में सक्षम होंगे।


यदि आप किसी वेब प्रोजेक्ट को डिबग कर रहे हैं, तो सुनिश्चित करें कि debug = "true" विशेषता आपके web.config फ़ाइल में सेट की गई है:

<system.web>
    <compilation debug="true"   .../>

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

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

तो इस मामले में BASD.Core.Data.dll में प्रतीकों को लोड नहीं किया गया है। तो आप इस असेंबली के लिए प्रोजेक्ट सेटिंग्स की तुलना किसी अन्य असेंबली की तुलना में कर सकते हैं जो प्रतीकों को लोड करने में कामयाब रहा, ताकि काम करने के लिए कुछ लोग और कुछ प्रतीक लोड न करें।

"मेरे लिए" हालांकि, "हर" समय ऐसा होता है क्योंकि यह डीबग जानकारी नहीं बनाई जा रही है। इसलिए मैं प्रोजेक्ट प्रॉपर्टीज> बिल्ड> एडवांस्ड ए (सी #) प्रोजेक्ट खोलता हूं।

तो Basd.Core.Data.dll के लिए यानी उन्नत निर्माण सेटिंग्स कोई प्रतीक नहीं थे:

जबकि Basd.Core.Configuration.dll यानी एक असेंबली जहां मैं एक ब्रेकपॉइंट सेट और हिट कर सकता था सेटिंग्स:

इसलिए मैं बाद की परियोजना में डीबग जानकारी आउटपुट कर रहा हूं, पहले नहीं, इसलिए Basd.Core.Configuration.dll में ब्रेक पॉइंट को हिट करने की मेरी क्षमता

यह भी ध्यान रखें कि किसी दिए गए .dll के लिए प्रोजेक्ट के बिन फ़ोल्डर में एक .pdb फ़ाइल रखने के लिए पर्याप्त नहीं है क्योंकि यह बहुत पुराना हो सकता है और इसलिए Visual Studio द्वारा .dll के लिए वैध प्रतीक फ़ाइल के रूप में नहीं लिया गया है आप आगे बढ़ने की कोशिश कर रहे हैं।

यह भी ध्यान रखें कि बिल्डिंग कॉन्फ़िगरेशन बदलना बिल्ड जानकारी सेटिंग्स को बदल सकता है और जहां से प्रतीकों को खींचा जा सकता है।

(मुझे इस मामले में एहसास है कि मैं रिलीज मोड में हूं लेकिन विधि अभी भी लागू होती है)


सिल्वरलाइट एप्लिकेशन प्रोजेक्ट को स्टार्टअप प्रोजेक्ट के रूप में सेट करने का प्रयास करें: प्रोजेक्ट पर राइट क्लिक करें -> 'स्टार्टअप प्रोजेक्ट के रूप में सेट करें। फिर F5 दबाएं और देखें कि क्या आप ब्रेकपॉइंट्स पकड़ सकते हैं ...

प्रत्येक बार जब आप Silverlight एप्लिकेशन में परिवर्तन करते हैं तो अपने ब्राउज़र में ब्राउज़िंग / अस्थायी डेटा को हटाने का प्रयास करें


सुनिश्चित करें कि आप अपने प्रोग्राम को DEBUG मोड में चला रहे हैं और रिलीज़ मोड नहीं।







iis