2008-09-28 11 views
5

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

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

क्या किसी के पास डीबगिंग के लिए कोई बेहतर सुझाव है? क्या मैं कुछ भूल रहा हूँ?

उत्तर

3

Andrew Connell's blog post विषय पर से:

GAC'd को डिबगर अनुलग्न करना विधानसभाओं: "क्यों मेरी breakpoints मारा जाता है नहीं किया जा रहा?!?!" कभी वहाँ रहा है? मुझे भी ... क्या एक पिटा है! क्या चल रहा है? खैर, असेंबली जीएसी में हैं और विजुअल स्टूडियो डीबगर डिबगिंग प्रतीकों (उर्फ: * .pdb) नहीं देख सकते हैं। जब तक आप एक प्रतीक स्टोर स्थापित करने की परेशानी से गुजर चुके हैं, जहां आपके सभी पीडीबी चल रहे हैं, तो आप को में डिबगिंग प्रतीकों को असेंबली के समान स्थान डालने की आवश्यकता होगी। चाल उस फ़ोल्डर को ढूंढ रही है जो में GAC में आपका DLL शामिल है।

सी: \ windows \ असेंबली फ़ोल्डर एक वास्तविक फ़ोल्डर नहीं है, यह एक वर्चुअल फ़ोल्डर है। असली फ़ोल्डर में जाने के लिए, कर निम्नलिखित:

  • प्रारंभ »भागो
  • % systemroot% \ विधानसभा \ गाक [ENTER]

यह GAC फ़ोल्डर खुल जाएगा। अब, चारों ओर से प्रहार जब तक आप ऐसा दिखता है (आप हो सकता है MSIL फ़ोल्डर में एक फ़ोल्डर और गोता कूदने की जरूरत) एक फ़ोल्डर पाते हैं: [विधानसभा फ़ाइल नाम -.DLL विस्तार] [विधानसभा प्रारूप में संस्करण > #। #। #। #] __ [असेंबली सार्वजनिक कुंजी टोकन]।

जब आपको वह फ़ोल्डर मिल जाए, तो उसे खोलें और आप अपनी असेंबली देखेंगे। पीडीबी फ़ाइल को उस फ़ोल्डर में कॉपी करें और फिर कुछ डीबगिंग खुशी के लिए डीबगर संलग्न करें!

+0

जब आप किसी प्रक्रिया से कनेक्ट होते हैं तब तक आप रिमोट मशीन के जीएसी में असेंबली पर डीबग कर सकते हैं जब तक कि पीडीबी वर्तमान प्रोजेक्ट की आपकी स्थानीय मशीन पर आउटपुट निर्देशिका में न हो। मैं पीएसीबी को जीएसी में कॉपी किए बिना रिमोट मशीनों पर जीएसी में एमओएसएस असेंबली पर डीबग करता हूं। –

1

मैं आपको शेयरपॉइंट के साथ एक विंडोज 2003 सर्वर पर विकसित करने की सलाह देता हूं। रिमोट सर्वर पर डीबग करने में परेशानी है। यदि आप अपने वर्कस्टेशन पर XP रखते हैं तो आप इसे वर्चुअल मशीन में VMWare या वर्चुअल पीसी के साथ कर सकते हैं।

1

वर्चुअल मशीन जाने का एकमात्र तरीका है। आप पूरी मशीन को देव को समर्पित नहीं करना चाहते हैं (जब तक आपके पास अतिरिक्त न हो) और आपके उत्पादन सर्वर पर विकास करना केवल परेशानी के लिए पूछ रहा है। मैं वीएमवेयर पसंद करता हूं, लेकिन ऐसे कुछ भी हैं जो काम करते हैं।

ट्रेसिंग सामान्य डीबगिंग के रूप में अच्छी तरह से काम करता है वास्तव में एक विकल्प नहीं है।

मैं और भी एक नियमित एएसपीनेट साइट पर सभी तर्क (सामान जो शेयरपॉइंट आश्रित नहीं है) को विकसित करने का प्रयास करता हूं, फिर इसे के बाद इसे SharePoint में एकीकृत करें।

आशा है कि यह समझ में आता है।

क्या आप वेब पार्ट्स विकसित करने के बारे में बात कर रहे हैं? कस्टम पेज? कुछ और?

+0

एआरएम - वीएम का उपयोग मूल प्रश्न से प्रासंगिक नहीं है (हालांकि वे बहुत उपयोगी हैं) – Ryan

+0

सामान्य डिबगिंग वास्तव में एक विकल्प क्यों नहीं है? मुझे लगता है कि यह हर समय काफी अच्छा लगता है :) –

+0

मुझे पता है, मैंने सोचा कि मैं वहां पर फेंक दूंगा। मैं समझा रहा था कि मैं अपने सामान्य गैर-शेयरपॉइंट पर्यावरण में पहले (विजुअल स्टूडियो) में अपनी डीबगिंग करने का प्रयास करता हूं क्योंकि एसपी पर्यावरण में डीबगिंग मुश्किल है। – naspinski

3

सबसे अच्छा तरीका (यहां तक ​​कि माइक्रोसॉफ्ट द्वारा अनुमोदित एक भी) आपके स्थानीय विकास मशीन के रूप में शेयरपॉइंट के साथ एक विंडोज 2003 सर्वर है।

this topic भी देखें।

2

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

यह भी लाभ है कि संकलन (पोस्ट-बिल्ड चरण) के बाद सर्वर पर अपने नए निर्माण की प्रतिलिपि बनाना और सुरक्षा बढ़ाने के लिए भी अनुशंसित तरीका है।

+0

कभी-कभी एक असेंबली नहीं है एक विकल्प का अधिक नहीं है। खासकर जब आप अपने डब्लूएसपी को फिर से काम करने और पुनर्वितरण करने के बारे में बात कर रहे हैं। यह एक दर्दनाक प्रक्रिया हो सकती है यदि आप केवल एक-एक त्रुटि को डीबग करने का प्रयास कर रहे हैं जिसे आप किसी अन्य तरीके से नहीं ढूंढ सकते (एक समस्या जो मैं वर्तमान में कर रहा हूं)। –