2010-03-11 16 views
6

पर xml अनुरोध/प्रतिक्रिया देखना मेरे पास एक डब्ल्यूसीएफ सेवा अनुप्रयोग है और इस ऐप में मैं एक सुरक्षित कनेक्शन पर किसी तृतीय पक्ष वेब सेवा पर कॉल कर रहा हूं।डब्ल्यूसीएफ - एक सुरक्षित webservice

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

एक्सएमएल अनुरोधों और प्रतिक्रियाओं को देखने के लिए मेरी सबसे अच्छी शर्त क्या है जो मैं इस तीसरे पक्ष की वेब सेवा में कर रहा हूं?

मैं जेनरेट प्रॉक्सी कक्षाओं का उपयोग कर रहा हूं, इसलिए मेरे पास वर्तमान में कच्चे एक्सएमएल तक पहुंच नहीं है जिसे मैं भेज रहा हूं और वापस प्राप्त कर रहा हूं। मैं उत्सुक हूं अगर मैं कुछ जटिल कर रहा हूं जिसे बहुत आसान किया जा सकता है। यह मेरी विकास मशीन है और मेरे पास बहुत कुछ सब कुछ है, कोई प्रतिबंध नहीं है।

कृपया ऐसा करने का एक आसान तरीका है?

संपादित करें:

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

उत्तर

4

चूंकि मैं अपने डब्ल्यूसीएफ ऐप के संदर्भ में एएसएमएक्स वेब सेवा के लिए साबुन संदेशों को पढ़ने की कोशिश कर रहा था, मेरी समस्या का समाधान सिस्टम.Web.Services.Protocols.SoapExtension से प्राप्त एक वर्ग बनाना था। , इस वर्ग को web.config में पंजीकृत करें ताकि सभी ट्रैफ़िक इस कक्षा के माध्यम से मार्गांतरित हो जाएं और देखे जा सकें।

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

यह लेख मुझे how-to-capture-soap-envelopes-when-consuming-a-web-service

+0

यह बहुत आसान था, टिप कैवलिया के लिए धन्यवाद। –

+4

लिंक मेरे लिए काम नहीं करता है, लेकिन इसने किया: http://blog.encoresystems.net/articles/how-to-capture-soap-envelopes-when-consuming-a-web-service.aspx – galets

2

अपने app.config को यह करें:

<system.diagnostics> 
<sources> 
    <source name="System.ServiceModel.MessageLogging"> 
    <listeners> 
     <add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="messages.svclog" /> 
    </listeners> 
    </source> 
</sources> 

<system.serviceModel> 
<diagnostics> 
    <messageLogging 
     logEntireMessage="true" 
     logMalformedMessages="true" 
     logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="false" 
     maxMessagesToLog="-1"/> 
</diagnostics> 

यह messages.svclog सभी संदेशों को प्रवेश करेंगे। फिर आप उन्हें देख सकते हैं।

7

WCF Tracing का उपयोग करें - यह बहुत अच्छी तरह से काम करता है और trace viewer utility के साथ आता है।

आप विकल्पों का भार सेट कर सकते हैं - लेकिन इसके मूल में, आप अपने WCF सेवा और ग्राहक कॉन्फ़िगरेशन को कुछ इस तरह जोड़ना होगा:

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

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

यह भी देखें: Using of WCF Trace और यहां WCF Tracing FAQ अधिक जानकारी के लिए।

+0

के लिए इसे किसी न किसी मैं इसे इस तरह से सेट अप लेकिन निशान मेरे ऐप और 3 पार्टी वेब सेवा के बीच संचार के बारे में कुछ भी नहीं होते हैं ... यह एसएसएल के कारण हो सकता है ?? – kaivalya

+0

एक डब्ल्यूसीएफ कॉल "आपके ऐप और तृतीय पक्ष webservice" के बीच संचार है? फिर आपको निश्चित रूप से अपने डब्ल्यूसीएफ लॉग में प्रविष्टियां देखना चाहिए। –

+0

तृतीय पक्ष एक वेब सेवा है जो मेरे डब्ल्यूसीएफ ऐप के वेब संदर्भ के रूप में जोड़ा गया है। और मेरा ऐप अनुरोध भेज रहा है और उस सेवा से प्रतिक्रिया प्राप्त कर रहा है। इस संचार से कोई भी req/resp पैरा पैरामीटर जानकारी निश्चित रूप से निशान में मौजूद नहीं है। मैंने नोटपैड के साथ भी ट्रेस पर खोज/खोज ऑपरेशन किए हैं और लॉग में मेरे किसी भी req/resp वस्तुओं या मूल्यों का कोई निशान नहीं है। वर्तमान में संदेशों को अवरुद्ध करने के लिए इंटरसेप्टर व्यवहार को कार्यान्वित करना, उम्मीद है कि यह मुझे जो चाहिए वह मुझे देगा .. – kaivalya

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