2009-10-23 5 views
5

करता है मैं डब्ल्यूसीएफ सेवाओं को बनाने के लिए काम कर रहा हूं जो नेट क्लाइंट से स्वतंत्र संचालन करेंगे। Google और StackOverflow के लिए धन्यवाद, मैं साबुन रैपर के बिना सरल एक्सएमएल और जेसन सेवाओं और फैंसी डब्ल्यूसीएफ सामानों का एक गुच्छा बनाने में सक्षम हूं जिनकी मुझे आवश्यकता नहीं है। यह एक दर्दनाक अनुभव रहा है, इसलिए इस प्रश्न की विषय पंक्ति। स्वचालित रूप से सेवा संदर्भ जोड़ते समय वेबगेट और WebInvoke का उपयोग करते समय डब्ल्यूसीएफ क्लाइंट पक्ष पर पागल छोटी गाड़ी है।डब्ल्यूसीएफ क्लाइंट (सेवा संदर्भ जोड़ें) वेबगेट और वेबइवोक से नफरत करता है ... वास्तव में, यह

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

मेरी वर्तमान समस्या यह है कि जब मैं पोस्ट डेटा को जेसन (सक्षम वेबस्क्रिप्ट व्यवहार) के रूप में उम्मीद करने के लिए सेवा बदलता हूं, तो ग्राहक को कोई जानकारी नहीं है, और यह अभी भी ऑब्जेक्ट को XML के रूप में भेजने का प्रयास करता है। क्लाइंट की कॉन्फ़िगरेशन के साथ क्लाइंट की कॉन्फ़िगरेशन के साथ कई बार समस्याएं ठीक से सेट नहीं हो रही हैं, इसलिए मुझे आशा है कि यह कुछ आसान है जिसे मैं क्लाइंट पर app.config में जोड़ सकता हूं। एक्सएमएल का उपयोग करते समय, मैं जो ऑब्जेक्ट्स बनाते हैं और सेवा में उपयोग करते हैं वे स्वचालित रूप से क्लाइंट द्वारा क्रमबद्ध xml (जो सबसे सुविधाजनक है) हैं। क्या डब्ल्यूसीएफ के मौजूदा संस्करण में जेसन के रूप में भी करना संभव है?

ऐसा लगता है कि मैं यह पता लगाने की मैं मैन्युअल रूप से करते हैं और इसे फ़िडलर (अनुरोध बिल्डर) के साथ एक मूल रूप में काम करने के लिए प्राप्त करने की आवश्यकता क्या कर रहा था, तो मैं कोड में मेरी वस्तुओं को क्रमानुसार और मैन्युअल रूप से डेटा भेज सकते हैं http पोस्ट के माध्यम से ... इस तरह मैं इसे अपने गैर-नेट क्लाइंट में भी कर रहा हूं। डब्लूसीएफ पहलुओं को बेहतर समझने के लिए यह एक सवाल है और मुझे क्लाइंट पक्ष पर इतने सारे गुण क्यों गुम हैं, जहां मुद्दों के समाधान के लिए कोई दस्तावेज उपलब्ध नहीं है।

+0

मैन .. काश मैं इसे पहले पढ़ता। हम मूल रूप से एक ही विचार प्रक्रिया के माध्यम से चला गया है। मुझे उम्मीद है कि आरईएसटी क्लाइंट एसओएपी क्लाइंट की तरह "बस काम करें"। –

+0

क्या आप डब्ल्यूसीएफ से जुड़े हैं या आपके पास सर्वर/सेवा पेलोड तकनीक का विकल्प है? दो साल पहले इसे पोस्ट करने के बाद से, मैंने कुछ भी के लिए डब्ल्यूसीएफ का उपयोग करने का विरोध किया है। प्रत्येक सेवा जो मैं बनाती हूं या उपभोग करता हूं मैन्युअल रूप से हल्के xml और/या json डेटा बनाता है, और मैं अपनी सुरक्षा और कुछ भी करता हूं जो डब्ल्यूसीएफ ने देव के लिए अधिक सुविधाजनक बनाने की कोशिश की। मुझे लगता है कि यह काफी कह रहा है कि एक लोकप्रिय सार्वजनिक वेब एपीआई को डब्ल्यूसीएफ सेवा – Rich

+0

के रूप में उजागर करना व्यावहारिक रूप से असंभव है, हम डब्ल्यूसीएफ से बंधे नहीं हैं लेकिन मुझे लगता है कि हम इसे हमारी सेवाओं में से किसी एक के लिए आजमा सकते हैं। डब्ल्यूसीएफ का उपयोग कर सर्वर-साइड घटकों का निर्माण करना तब तक दर्दनाक था जब तक हम सब कुछ समझ नहीं पाए। हालांकि ... हाथ से अंत बिंदु बनाने के लिए अच्छा नहीं था (हमें एसओएपी/आरईएसटी/जेएसओएन सभी काम कर रहा है)।अब, मुझे एहसास है कि हम सिर्फ एसओएपी का उपयोग करेंगे यदि हम .NET क्लाइंट का उपयोग कर रहे हैं और दूसरों को आरईएसटी/जेएसओएन का उपभोग करने दें। –

उत्तर

3

डब्ल्यूसीएफ सेवा संदर्भ आरपीसी पेलोड के लिए हैं जो स्वयं वर्णन कर रहे हैं - यानी एसओएपी, wsHttp इत्यादि। समान रूप से डब्ल्यूसीएफ दृढ़ता से टाइप किए गए क्लाइंट केवल आरपीसी पेलोड के साथ काम करने का इरादा रखते हैं क्योंकि केवल वे सभी प्रकार की सूचनाओं को प्रसारित करने में सक्षम हैं। इसके लिए सही ढंग से काम करने के लिए आवश्यक है।

जब आप वेबजेट और वेबिनवोक का उपयोग करते हैं तो आप गैर-आरपीसी सेवाएं (आरईएसटी सेवाओं को लिखने के इरादे से) बना रहे हैं जो स्वयं वर्णन नहीं कर रहे हैं और इसलिए यह सेवा संदर्भ कार्यक्षमता के लिए उपयुक्त नहीं है।

आप निश्चित रूप से इसके लिए एक .NET क्लाइंट लिख सकते हैं - लेकिन आपको वेब क्लाइंट/वेबरक्वेट का उपयोग करके इसे लिखना बहुत आसान लगेगा, मैन्युअल रूप से एक्सएमएल/जेसन अनुरोध/प्रतिक्रियाओं को प्रारूपित/पढ़ना (या डेटाकंट्रैक्टसेरियलाइज़र और डेटाकंट्रैक्टजसनसेरियलाइज़र का उपयोग करना उस के साथ मदद करने के लिए)।

1

SOAP स्वयं वर्णन (एक डब्लूएसडीएल के माध्यम से) है।

वेबगेट/वेबइवोक किसी मेटाडेटा का पर्दाफाश नहीं करता है जो क्लाइंट को XML के बजाय JSON का उपयोग करने के लिए कहता है।

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