2012-01-06 11 views
12

मेरा कोड बहुत सारे डब्ल्यूसीएफ कॉल का उपयोग करता है और जब मैं इसे डीबग करने का प्रयास करता हूं, तो यह सेवा कोड पर ही नहीं जाता है। क्या किसी भी तरह डब्ल्यूसीएफ कोड डीबग करने का कोई तरीका है?डब्ल्यूसीएफ कार्यक्रमों को डीबग कैसे करें

+0

आप डब्ल्यूसीएफ सेवा कैसे चला रहे हैं? आईआईएस के अंदर या एक अकेले आवेदन के रूप में? –

उत्तर

13

आप देखेंगे कि आपके WCF सेवा में चल रहा है की प्रक्रिया के लिए डिबगर संलग्न करने के लिए की जरूरत है।

IIS में आप इसी w3p.exe प्रक्रिया को संलग्न करने के लिए की जरूरत है।

यदि स्टैंड स्टैंड अकेले ऐप या विंडोज सेवा में, अपने exe के नाम से संलग्न करें।

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

स्विच करने योग्य स्तरों के साथ .net ट्रेसिंग का उपयोग करके डीबगिंग के बाहर, क्या हो रहा है, इसकी अंतर्दृष्टि प्राप्त करने का एक अच्छा तरीका है। मैं आम तौर पर रंग हाइलाइट त्रुटियों और चेतावनियों के लिए sys internals डीबगव्यू सेटअप करता हूं और लगातार कोड या परीक्षण चलाते समय इसे चलाता रहता हूं। काम करते समय मेरे परिधीय दृष्टि से रंगीन रेखाएं समस्याएं पाती हैं।

2

सेवा से जुड़ा हुआ है, कोड को कॉल नहीं करना।

3

विजुअल स्टूडियो 2010 में डब्ल्यूसीएफ सेवा डीबग करने के लिए, डीबग -> प्रक्रिया से जुड़ाव पर जाएं। "सभी उपयोगकर्ताओं से प्रक्रियाएं दिखाएं" की जांच करें, और यदि आप आईआईएस का उपयोग कर रहे हैं, या यदि आवेदन नहीं है तो w3p.exe चुनें। ब्रेकपॉइंट में रखें, कॉल करें, और उसके बाद आप डिबगिंग शुरू कर सकते हैं।

यदि यह एक वेब एप्लिकेशन है (मैं इसकी अनुशंसा करता हूं) तो आप प्रोजेक्ट पर राइट क्लिक कर सकते हैं, वेब टैब पर जा सकते हैं, और स्टार्ट एक्शन के तहत "कोई पृष्ठ नहीं खोलें, बाहरी से अनुरोध की प्रतीक्षा करें आवेदन "। इस सेटिंग को सेव और बंद करें, फिर डीबगिंग शुरू करने के लिए बस F5 दबाएं।

+0

वेब एप्लिकेशन डीबगिंग ने मुझे बड़ी मात्रा में बचाया! –

11

आप WCF गतिविधि का पता लगाने के लिए अगर यातायात को सही क्रम में उत्पन्न होता है देखने के लिए देख रहे हैं, तो मैं निम्नलिखित तरीकों में से एक की सिफारिश करेंगे:

1) का प्रयोग करें fiddler WCF यातायात को देखने के लिए।

2) वास्तविक डब्ल्यूसीएफ कॉल की निगरानी के लिए डब्ल्यूसीएफ ट्रेस श्रोता का उपयोग करें। Serialization विफलता के कारणों को निर्धारित करने की कोशिश करते समय यह बेहद सहायक है। आप अपने web.config के विन्यास ब्लॉक करने के लिए निम्नलिखित ब्लॉक जोड़कर इस सक्षम कर सकते हैं:

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Information, ActivityTracing" 
       propagateActivity="true"> 
     <listeners> 
      <add name="traceListener" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="c:\log\WebTrace.svclog" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 

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

+1

यह मेरे मामले में ** अत्यंत ** सहायक था। आपका बहुत बहुत धन्यवाद! – LoBo

1

जब एक आवेदन है कि WCF तक पहुँचता चलने वाली सेवाओं वहाँ अक्सर जो WCF सेवा

  • सर्वर प्रक्रिया है जो WCF सेवा
  • होस्ट कर रहा है पहुँच रहा है

    • ग्राहक प्रक्रिया शामिल दो प्रक्रियाओं हैं

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

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

      • उपकरण -> संसाधित करने
    12

    वहाँ एक बहुत ही आसान तरीका है देते हैं। विजुअल स्टूडियो में बस कई प्रक्रियाएं शुरू करें। समाधान पर राइट क्लिक करें। गुण क्लिक करें। स्टार्टअप प्रोजेक्ट का चयन करें। एकाधिक स्टार्टअप परियोजनाओं पर क्लिक करें। डब्ल्यूसीएफ और क्लाइंट परियोजनाओं को एक्शन = स्टार्ट पर सेट करें। अब आप डब्ल्यूसीएफ के साथ-साथ ग्राहक के माध्यम से कदम उठाएंगे।

    +0

    शायद इसे सही उत्तर के रूप में चुना जाना चाहिए – Sergei

    0

    मेरे मामले में, मैं दृश्य स्टूडियो में StartUp Project के रूप में WCF साइट की स्थापना की और सीधे डिबग मोड में WCF चलाने के लिए,

    दृश्य स्टूडियो समाधान Explorer में WCF आइटम की तरह है:

    enter image description here

    WCF शुरू होने के बाद, वहाँ ब्राउज़र में एक नया वेब पेज शो हो जाएगा, और इसके यूआरएल तो http://xxxx:xxport/Service.svc पसंद करेंगे, इस uri कॉपी और अन्य कार्यक्रम जो इस WCF फोन में इसका इस्तेमाल करते हैं,

    प्रोग्राम कॉल के तरीके पर ब्रेक पॉइंट सेट करें, प्रोग्राम निष्पादित होने पर ब्रेकपॉइंट सफलतापूर्वक दर्ज किया जाएगा।

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