8

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

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

यदि त्रुटि सही है, तो मैं मूल स्रोत कोड को चलाने के लिए चाहता हूं। मुझे नहीं पता कि वीएस में दृश्यों के पीछे क्या चल रहा है; मैं पुनर्निर्माण करने की कोशिश करता हूं और यह सब कुछ लेकिन इससे मदद नहीं करता है। मैं डीबग मोड में वी.एस. में चल रहा हूँ 2012.

screenshot of trying to place a breakpoint in vs 2012 MVC razor view

+1

क्या आप रिलीज में चल रहे हैं और इसे पीडीबी फाइलें उत्पन्न करने के लिए कॉन्फ़िगर नहीं किया गया है? आप पूरी तरह से कर सकते हैं, यहां कुछ और खेल रहा है जो इसे अवरुद्ध कर रहा है। ऐसे कई चर हैं जो इस कारण हो सकते हैं। –

+0

मैं डीबग में चल रहा हूं। क्या कोई अन्य प्रासंगिक जानकारी है जो मुझे अपने प्रश्न में शामिल करनी चाहिए? – levininja

+0

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

उत्तर

9

यह बहुत सी बातें की वजह से हो सकता है, लेकिन हाल ही में कुछ आइटम के साथ जो मुझे मदद की है लोगों की जांच करने के:

  • पहला कदम: डीबगिंग सक्षम करने के लिए डीएलएल के साथ एक पीडीबी फाइल होना चाहिए। (देखें: What is a PDB file?) सुनिश्चित करें कि आपके पास निष्पादन निर्देशिका में पीडीबी है।

  • अपने बिन फ़ोल्डरों से सभी पुराने DLL को निकालने के लिए साफ़ करें।

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

  • यदि आप कुछ वेब से संबंधित हैं, तो सुनिश्चित करें कि ब्राउज़र कैशिंग कोड नहीं है, या आईआईएस लंबी चल रही प्रक्रिया नहीं रख रहा है।

  • किसी भी चल रहे विजुअल स्टूडियो डेवलपमेंट सर्वर इंस्टेंस को मारें (आप इसे टास्क मैनेजर से या सिस्टम ट्रे से अधिक कर सकते हैं - वे आईई लोगो की तरह दिखते हैं और जब आप उन पर होवर करते हैं तो वे आपको बताएंगे कि वे कौन सा पोर्ट चलते रहना)।

  • कमांड प्रॉम्प्ट से iisreset का उपयोग करके IIS को पुनरारंभ करें।

  • विजुअल स्टूडियो (Tools > Options > Debugging > Symbols) में डिबगिंग के लिए सेटिंग्स की जांच करें, आप स्वचालित रूप से प्रतीकों को लोड करना चाहते हैं, और यदि आप अन्य असेंबली को जोड़ रहे हैं तो आपको यहां उनकी पीडीबी फाइलों को संदर्भित करने की आवश्यकता है।

+0

मेरी टिप्पणी नीचे देखें: web.config की अपनी सूची में संशोधन करने के लिए –

0

आसान समाधान मैं इस समस्या को हल करने के लिए मिल गया है है:

नियंत्रक कोड है कि सही से पहले देखें कहा जाता है में एक ब्रेकपाइंट सेट करें। फिर, जब वह ब्रेकपॉइंट मारा जाता है, तो कई बार (एफ 10 का उपयोग करके) कदम उठाएं। यह _ViewStart.cshtml और शायद एक और चीज़ या दो के माध्यम से जाएगा। लेकिन जल्द ही यह देखने के लिए मिलेगा।

एक बार जब आप दृश्य में हों, तो F5 (जारी रखें) को मारने से आपको दृश्य में ब्रेकपॉइंट पर ले जाया जाएगा।

-1

सुनिश्चित करें कि आपका समाधान कॉन्फ़िगरेशन रिलीज़ पर नहीं डीबग पर सेट है।

धन्यवाद

0

Fom जवाब कुछ भी नहीं मुझे जावास्क्रिप्ट कोड में एक ब्रेकपाइंट सेट करने के लिए के लिए काम किया। मैं स्क्रिप्ट \ myscript.js दायर करने के लिए अंदर जावास्क्रिप्ट कोड चले गए और

<script src="@Url.Content("~/Scripts/myscript.js")"></script> 
1

को स्क्रिप्ट ब्लॉक की जगह तो मैं आज सुबह इस मुद्दे था और मेरे लिए ठीक उस्तरा वाक्य रचना से संबंधित था।

मैं एक के अंदर एक चर की स्थापना की गई थी अगर बयान

@If (my condition) 
{ 
    myVar1 = "blah blah blah" 
    @myVar2 = 1 <== This line here was causing my razor to crap out on render 
} 

तो अन्य सभी चीजों की अच्छी बातें अनुचित उस्तरा वाक्य रचना भी ब्रेकप्वाइंट मुद्दा पैदा कर सकता है लेकिन कर रहे हैं। इस मामले में यह कोड ब्लॉक के अंदर myVar2 पर @ प्रतीक था ... बस एक FYI

+0

की जांच करने के लिए चीजें जबकि यह सवाल वीएस2012 के लिए था, मैं वर्तमान में वीएस2015 पर हूं –

0

@ किर्क-ब्रॉडहर्स्ट उत्तर में जोड़ने के लिए, (यदि संभव हो तो संशोधित करें), अपने web.config को दोबारा जांचें, विशेष रूप से compilation system.web के तहत ध्वज। भले ही आप डीबग के लिए निर्माण कर रहे हों, अगर debug विशेषता गलत पर सेट की गई है, तो आप रेजर डीबग करने वाले मुद्दों में भाग लेंगे।

<system.web> 
    <compilation debug="true" targetFramework="4.6" /> 
</system.web> 
संबंधित मुद्दे