WCF ट्रेसिंग को कैसे चालू करें?


160

अपडेट करें:

मैं WCF ट्रेसिंग चालू करने की कोशिश कर रहा हूं , लेकिन अभी भी कोई सफलता नहीं मिली है ... नीचे मेरा अंतिम अपडेट है।

क्या मुझे नीचे दिए गए स्थान पर लिखने की अनुमति चाहिए?

  <system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="sdt"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "@\\myservername\folder1\traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

मैं .NET फ्रेमवर्क 3.5 का उपयोग कर रहा हूं।

डिबगिंग उद्देश्यों के लिए WCF ट्रैकिंग चालू करने के लिए चरण-दर-चरण निर्देश क्या है?

जवाबों:


230

MSDN से लिया गया निम्न कॉन्फ़िगरेशन आपकी WCF सेवा पर अनुरेखण को सक्षम करने के लिए लागू किया जा सकता है ।

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true" >
        <listeners>
             <add name="xml"/>
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
      <source name="myUserTraceSource"
              switchValue="Information, ActivityTracing">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
        <add name="xml"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="Error.svclog" />
    </sharedListeners>
  </system.diagnostics>
</configuration>

लॉग फ़ाइल देखने के लिए, आप "C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcTraceViewer.exe" का उपयोग कर सकते हैं।

यदि "SvcTraceViewer.exe" आपके सिस्टम पर नहीं है, तो आप इसे "Microsoft विंडोज एसडीके के लिए विंडोज 7 और .NET फ्रेमवर्क 4" पैकेज से डाउनलोड कर सकते हैं:

विंडोज एसडीके डाउनलोड

आपको पूरी चीज़ स्थापित करने की ज़रूरत नहीं है, बस ".NET विकास / उपकरण" भाग।

जब / अगर यह गैर- संवेदी त्रुटि के साथ स्थापना के दौरान बम हो जाता है, तो विंडोज 7 एसडीके इंस्टॉलेशन विफलता के लिए पेटोपास का जवाब इस मुद्दे को हल करता है।


18
मैं फ़ाइल को Error.svclogकहां उत्पन्न करता हूं ?
निक कान

4
फ़ाइल को आपकी असेंबली के समान निर्देशिका में जेनरेट किया जाएगा। सबसे अधिक संभावना है कि आपकी बिन निर्देशिका। यदि आप IIS में होस्ट किए जाते हैं, तो आपको कार्यकर्ता प्रक्रिया को रीसायकल करने की आवश्यकता हो सकती है।
रोहन वेस्ट

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

2
विकास के वातावरण में, त्रुटि फ़ाइल (initializeData = "Error.svclog") समाधान प्रोजेक्ट के अंदर संग्रहीत की जाती है। इसे अन्य स्थानों पर बदलने से काम नहीं चला।
LCJ

5
मैं इसका उपयोग करके किसी फ़ोल्डर में लॉग इन करने में सक्षम था: initializeData = "C: \ wcflogs \ wcf_svclog.svclog" />
एड्रियन कार

32

अपने web.config में (सर्वर पर) जोड़ें

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

1
मैं इस तरह से जोड़ा है क्योंकि मैं फ़ोल्डर के अलावा देव के लिए उपयोग नहीं है initializeData="\\servername\drive$\Project\WCFTraces.svclog"/>और मैं देख नहीं है कि मैं सेवाओं का उपयोग करने की कोशिश के बाद फ़ाइल उत्पन्न होती है।
निक कान

5
डिफ़ॉल्ट रूप से यह बफ़र्ड है (इसे बदलने में सक्षम हो सकता है)। आप इसे ऐप पूल को रिसाइकल करके फ्लश करने के लिए मजबूर कर सकते हैं। यह भी सुनिश्चित करें कि ऐप पूल पहचान स्थान पर लिख सकता है।
क्रिस्टोफ़

20

अपने Microsoft SDKs निर्देशिका पर जाएं। इस तरह एक रास्ता:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools

उस निर्देशिका से WCF कॉन्फ़िगरेशन संपादक (Microsoft सेवा कॉन्फ़िगरेशन संपादक) खोलें:

SvcConfigEditor.exe

(इस टूल को खोलने का एक और विकल्प विजुअल स्टूडियो 2017 में "टूल्स"> "डब्ल्यूसीएफ सर्विस कॉन्फ़िगरेशन एडिटर" में नेविगेट करके है)

wcf विन्यास संपादक

अपनी .config फ़ाइल खोलें या संपादक का उपयोग करके एक नया बनाएं और डायग्नोस्टिक्स पर जाएं।

वहां आप "Enable MessageLogging" पर क्लिक कर सकते हैं।

messagelogging सक्षम करें

अधिक जानकारी: https://msdn.microsoft.com/en-us/library/ms732009(v=vs.110).aspx

एक ही निर्देशिका से ट्रेस दर्शक के साथ आप ट्रेस लॉग फ़ाइलों को खोल सकते हैं:

SvcTraceViewer.exe

आप WMI का उपयोग करके भी अनुरेखण सक्षम कर सकते हैं। अधिक जानकारी: https://msdn.microsoft.com/en-us/library/ms730064(v=vs.110.bx


2
इस GUI उपयोगिता से मुझे परिचित कराने के लिए बहुत-बहुत धन्यवाद। यह विन्यास फाइल को संपादित करना बहुत आसान बना देगा!
सहजीवन

बहुत बढ़िया। यह मुझे Tracelog को समझने में बहुत मदद करता है।
ksrds

1

इसके बजाय आप ट्रेसिंग बिटिंग को web.config में ट्रेंडिंग इनेबलिंग से जोड़ते हैं, आप WCF कॉन्फ़िगरेशन एडिटर का उपयोग करके भी देख सकते हैं जो ट्रेसिंग को सक्षम करने के लिए VS SDK के साथ आता है।

https://stackoverflow.com/a/16715631/2218571

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.