2013-08-02 9 views
7

मैं विजुअल स्टूडियो वाले अन्य मशीन से एक प्रबंधित एप्लिकेशन को रिमोट कैसे डिबग कर सकता हूं। यह मैं क्या करने की कोशिश की है:रिमोट डीबगिंग प्रबंधित अनुप्रयोग

  1. कॉपी जो रिमोट मशीन में दृश्य स्टूडियो के हिस्से आता है और msvsmon.exe (64 बिट संस्करण के रूप में दोनों मशीनों 64 बिट कर रहे हैं) को चलाने के लिए दूरदराज के डिबग फ़ोल्डर।
  2. दोनों मशीनों में एक ही विंडोज लॉगिन खाता का उपयोग करें।
  3. फिर मैं दृश्य स्टूडियो शुरू करता हूं और प्रक्रिया के लिए संलग्नक का उपयोग करता हूं। परिवहन में मैं "डिफ़ॉल्ट" का चयन करता हूं और क्वालीफायर में मैं मशीन का होस्टनाम देता हूं जहां msvsmon.exe चल रहा है।
  4. फिर मैं उस मशीन पर प्रक्रियाओं की सूची देखने के लिए ताज़ा करें बटन दबाएं। मैं देख सकता हूं कि दूसरे पर यह कहता है "उपयोगकर्ता xyz जुड़ा हुआ है"। हालांकि, ताज़ा विफल रहता है और मैं निम्नलिखित त्रुटि मिलती है: Error screen

क्या मैं गलत यहाँ कर रहा हूँ? मैं वीएस -2008 प्रो और ओएस के साथ कोशिश कर रहा हूं दोनों प्रणालियों पर विंडोज सर्वर 2008 आर 2 है यदि यह मायने रखता है।

नोट: मैं किसी भी मुद्दे के बिना दूरस्थ परिवहन का उपयोग कर अप्रबंधित अनुप्रयोगों को डीबग कर सकता हूं।

+2

उपयोग [MSDN लेख] (28v = vs.100% 29.aspx)।फ़ायरवॉल सामान्य लटकाना है, आपने इसके बारे में कुछ भी नहीं बताया है। –

+0

रिमोट मशीन पर msvsmon.exe को भी चलाने के लिए सुनिश्चित करें * व्यवस्थापक के रूप में * –

उत्तर

2

Visual Studio 2012 के साथ शुरू आप रिमोट (कोई प्रमाणीकरण) का उपयोग कर सकते डिबग करने के लिए परिवहन प्रबंधित कोड (पहले वी.एस. केवल रिमोट मोड में मूल कोड डिबग करने के लिए अनुमति है)।

3

मैंने इस पर बहुत सारे घंटे भी खो दिए। यह एकमात्र तरीका है जिसे मैंने 100% काम करने के लिए पाया है, उसी डोमेन का उपयोग करना है। VS2012 के साथ एक ही डोमेन में रहने के बिना कनेक्ट करना आसान है।

लेकिन 2008 के लिए, यह (वी.एस. बिना एक = वी.एस. ओर, बी = मशीन) मेरे लिए काम कर रहा है

1) मशीन ए (जहां वी.एस. है) और बी एक ही डोमेन में होना चाहिए। आपको बी

2 पर वीएस रिमोट डीबगर मॉनीटर को डाउनलोड और इंस्टॉल करने की भी आवश्यकता है 2) आपको आने वाले कनेक्शन की अनुमति देने के लिए बी पक्ष पर वीएस रिमोट डीबगर मॉनीटर शुरू करने की आवश्यकता है। जब आप इसे पहली बार शुरू करते हैं, तो यह बंदरगाहों को खोलने के लिए फ़ायरवॉल को कॉन्फ़िगर करेगा। यह आपको यह भी दिखाता है कि यह किस पते पर सुन रहा है, यानी DOMAIN \ उपयोगकर्ता @ hostname_B

3) ए पर डोमेन व्यवस्थापक खाते के साथ वीएस चलाएं, और आप दूरस्थ रूप से डीबग करने में सक्षम होंगे। डीबग में बी से कनेक्ट करने के लिए, मॉनिटर

द्वारा चरण 2 में दिखाए गए पते का उपयोग करें, आशा है कि यह आपकी मदद करेगा!

+0

दोनों मशीनें अलग-अलग डोमेन में हैं :(चरण 3 में पते का उपयोग करने पर चरण 3 में भी आपका मतलब है कि मुझे प्रक्रिया में अटैच में प्रवेश करना होगा संवाद बॉक्स? – Asha

+0

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

+0

क्या आपने इसे पढ़ा: http://msdn.microsoft.com/en-us/library/9y5b4b4f(v=vs.90).aspx? – Fabske

5

भले ही आपकी मशीन 64 बिट हों, सुनिश्चित करें कि आपके द्वारा चलाए जा रहे एप्लिकेशन 64 बिट हैं। उदाहरण के लिए यदि आप रिमोट मशीन पर 32 बिट एप्लिकेशन डिबग कर रहे हैं, तो आप msvsmon.exe के 32 बिट संस्करण को चलाने के लिए

यह उत्तर नहीं हो सकता है, लेकिन यह सुनिश्चित करने के लिए कुछ जांचना है।

में अद्यतन मैं पिछले कुछ वर्षों में अधिक सुदूर डीबगिंग का उपयोग किया गया है के रूप में, मैं कुछ और मुद्दों है कि मैं आमतौर पर के माध्यम से काम करने के लिए है ध्यान दिया है।

  1. सुनिश्चित करें कि प्रत्येक मशीन पर msvsmon का एक ही संस्करण उपयोग किया जा रहा है।
  2. सुनिश्चित करें कि प्रमाणीकरण सही तरीके से कॉन्फ़िगर किया गया है (कोशिश करें और पहले काम करने के लिए कोई प्रमाणीकरण नहीं प्राप्त करें, फिर इसे बाद में चालू करें)
  3. सुनिश्चित करें कि जब आप प्रक्रिया से संलग्न होते हैं, तो आपके पास सही "सेटिंग" सेटिंग्स होती है (यानी नेट संस्करण, मूल निवासी कोड, आदि)
  4. यकीन msvsmon व्यवस्थापक के रूप में या आप ओपी को
+0

मैं अभी भी इसे आज़माने का प्रबंधन नहीं कर सका .. कोशिश करूँगा और अपडेट करूँगा जैसे ही मुझे कुछ समय मिल जाए। – Asha

+0

ठीक है। बस यह सुनिश्चित करने के लिए, क्या आप एक प्रोग्राम चला रहे हैं जो x86 के साथ संगत है? मुझे बताएं क्या होता है। – matrixugly

2

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

मैं WinDBG (या इसी तरह) स्थापित करने पर विचार करने का सुझाव दूंगा, यह सुनिश्चित करने के लिए कि आपको सही प्रतीकों \ कोड सेटअप का उपयोग डीबग करने के लिए किया गया है। WinDBG के लिए एक बहुत सीधी सीखने की वक्र है, लेकिन मेरा मानना ​​है कि यह बहुत ही उच्च स्तर पर भी इसके लायक है। यह बेहद हल्का है, जिसका अर्थ मूल पोस्ट के संदर्भ में उपयोगी है + उत्पादन में भी प्रयोग योग्य है, आदि जहां वीएस की तरह कुछ स्थापित करना आम तौर पर एक विकल्प नहीं है।

यदि आप जल्दी में हैं तो यह संभवतः एक विकल्प नहीं है, लेकिन यह लंबे समय तक करने के लायक है।

क्रिस

पुनश्च: कुछ वी वेब पर अच्छा पाठ्यक्रम, विशेष रूप से (मैं कोई संबंध नहीं है, एक खुश ग्राहक जा रहा है को छोड़कर) Pluralsight जैसी साइटों पर

1

मैं एक बहुत खर्च किया है कर रहे हैं। इस काम को बनाने का समय। लेकिन मैं सफल हुआ और अब मेरे प्रबंधित आवेदन को पूरी तरह से डीबग करने के लिए। मैं इसे कार्य करने के लिए कार्य की इस सूची का पालन करता हूं:

- लक्ष्य पीसी को डोमेन में जोड़ें और उसी खाते के साथ लॉगिन करें जब आप विजुअल स्टूडियो के साथ पीसी पर उपयोग करते हैं।

- सही दृश्य स्टूडियो रिमोट डीबगर (msvsmon.exe) चलाएं, मैं 2010 संस्करण का उपयोग करता हूं।

- लक्ष्य पीसी पर फ़ायरवॉल बंद करें।

- कंप्यूटर विकसित करने पर devenv.exe (विजुअल स्टूडियो exe) के लिए विंडोज फ़ायरवॉल के अपवाद जोड़ें।

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

-उपयोग करने के लिए डिबग पता है: DOMAIN \ USER @ PCNAME (उदा। MyGreatDomain \ Myself @ DEBUGPC)।

- अगर मैं डिबगिंग शुरू करने के लिए "डीबग-> प्रक्रिया से अटैचमेंट" विंडो का उपयोग करता हूं, तो मुझे "संलग्न करें" संपादित करने के लिए "चयन करें" बटन का भी उपयोग करना होगा - मुझे प्रबंधित (v4.0) कोड, मूल कोड ।

-पीडीबी फाइलें उसी निर्देशिका में होनी चाहिए जो मैं अपने exe चलाने के लिए उपयोग करता हूं। मैंने सीधे अपने कंप्यूटर और पीडीबी के साथ निर्देशिका को लक्षित कंप्यूटर में मैप किया।

-विजुअल स्टूडियो में मुझे टूल्स-> विकल्प, डिबगिंग-> सामान्य का विस्तार करना होगा। और बस मेरा कोड सक्षम करें अनचेक करें (केवल प्रबंधित)।

यह वास्तव में यह काम करने के लिए जटिल है, लेकिन यह इतना समय बाद में बचाता है ... http://msdn.microsoft.com/en-us/library/bt727f1t%

संबंधित मुद्दे