2009-03-31 16 views
5

मैंने एक ऐसी सेवा बनाई है जो सर्वर पर होस्ट की गई है जिसमें नेट 3.5 स्थापित है और मुझे इस सेवा को उस क्लाइंट से कॉल करने की आवश्यकता है जिसमें केवल .Net 2.0 है स्थापित।.NET 2.0 मानक ASMX वेब सेवा क्लाइंट से .NET 3.5 WCF सेवा कॉल करें

क्या ऐसा कोई तरीका है जिससे मैं ऐसा कर सकता हूं?

उत्तर

6

अपने WCF सेवा कि समाप्ति बिंदु basicHttpBinding का उपयोग कर को उजागर करता है, तो यह नेट 2.0 क्लाइंट यह उपभोग करने के लिए संभव हो जाना चाहिए। जैसा कि मार्क ने कहा, "कोई समस्या नहीं"।

+0

.NET 2.0 में ऐसी कोई भी चीज़ नहीं है जो WSE के अलावा net.tcp या wsHttp का उपभोग कर सके, जो बीमारी से भी बदतर इलाज है। –

+1

आह, सच ...... डब्ल्यूसीएफ .NET 3.0 के साथ आया - इसे भूलना जारी रखें! –

+0

तो, मैं किस प्रकार का बाध्यकारी उपयोग करूँ, क्योंकि अब मैं wsHttp का उपयोग करता हूं और यह – Melursus

2

हां बेशक - .NET 3.5 पर होस्ट की जाने वाली सेवा को क्लाइंट पर .NET Framework के समान संस्करण की आवश्यकता नहीं है। बिल्ली - आप जावा या PHP से ऐसी सेवा भी कॉल कर सकते हैं! सेवा उन्मुख वास्तुकला के पूरे POINT है! :-)

आपको अपने सेवा अनुबंध को परिभाषित करने की आवश्यकता है (सेवा क्या कहा जाता है; इसे किस तरीके से बुलाया जा सकता है) और आपको यह तय करने की आवश्यकता है कि इसे कैसे होस्ट किया जाए, उदा। आप किस सेवा पर इस सेवा को कॉल कर सकते हैं, और किन पैरामीटर की आवश्यकता है (उदा। HTTP बनाम टीसीपी, सुरक्षित या सुरक्षित नहीं आदि) - यह बहुत काम है, यहां तक ​​कि डब्ल्यूसीएफ में भी।

डब्ल्यूसीएफ के लिए यहां तीन प्रारंभिक लेख हैं - उन्हें जांचें!

लेकिन एक .NET 2.0 क्लाइंट से उस सेवा को फोन कर बिल्कुल कोई समस्या नहीं है!

मार्क

+0

जो 100% सत्य नहीं है। वेब सेवा प्रोटोकॉल पर काफी निर्भर करता है। – Randolpho

+0

हां, ज़ाहिर है - प्रोटोकॉल और सुरक्षा सेटिंग्स इत्यादि से मेल खाना चाहिए - लेकिन तथ्य यह है कि क्लाइंट .NET 2.0 है और सेवा .NET 3.5 कोई समस्या नहीं पेश करती है। –

+0

बात यह है कि .NET 2.0 पुस्तकालय WCF द्वारा समर्थित डिफ़ॉल्ट प्रोटोकॉल का समर्थन नहीं करते हैं - कई मामलों में वे मौजूद नहीं थे या .NET 2.0 बाहर आने पर अंतिम रूप नहीं दिए गए थे। तो यह बिल्कुल "बिल्कुल कोई समस्या नहीं है"; यह एक * विशाल * समस्या है। – Randolpho

3

हाँ आप इसे कर सकते हैं। कुछ चेतावनी हैं, हालांकि:

आपको मिलान करने वाले प्रोटोकॉल का उपयोग करना होगा। मानक .NET 2.0 पुस्तकालय कई सुरक्षित वेब सेवा सुविधाओं का समर्थन नहीं करते हैं; वास्तव में, यदि आप .NET 2.0 के डिफ़ॉल्ट इंस्टॉलेशन द्वारा उपभोग करना चाहते हैं तो आप डब्ल्यूसीएफ सेवा पर केवल मूल एचटीपी बाइंडिंग का उपयोग करके बहुत अधिक अटक गए हैं। यह कई उद्यम परिदृश्यों में एक गंभीर सीमा है। हालांकि, यह सब कुछ आपको चाहिए।

यदि आपको अधिक सुरक्षा की आवश्यकता है लेकिन अभी भी .NET 2.0 का उपयोग कर रहे हैं, तो विकल्प हैं। दोबारा, आपकी डब्ल्यूसीएफ सेवा को आपके .NET 2.0 क्लाइंट को समायोजित करना होगा, लेकिन आपके .NET 2.0 क्लाइंट को बाहरी लाइब्रेरी का लाभ उठाने की भी आवश्यकता होगी। विशेष रूप से, आपको माइक्रोसॉफ्ट द्वारा Web Service Enhancements डालने की आवश्यकता होगी। ध्यान रखें, हालांकि, ये पुस्तकालय कुछ SOAP प्रोटोकॉल के बीटा संस्करण को लागू करते हैं, जबकि डब्ल्यूसीएफ (कई तरीकों से डब्लूएसई के उत्तराधिकारी) डिफ़ॉल्ट रूप से मानकों को लागू करता है। चूंकि प्रोटोकॉल (विशेष रूप से डब्ल्यूएस-एड्रेसिंग) में कुछ तोड़ने वाले बदलाव थे, इसलिए आपको समायोजित करने के लिए अपनी डब्ल्यूसीएफ सेवा पर customBinding एंडपॉइंट देना होगा।

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

नीचे की रेखा, .NET 2.0 क्लाइंट को मूल एचटीपी बाइंडिंग के अलावा किसी अन्य चीज़ के लिए डब्ल्यूसीएफ सेवा से बात करने के लिए बहुत सारे काम मिलते हैं। कई मामलों में, basicHttp बाइंडिंग पर्याप्त हो सकता है। कई उद्यम परिदृश्यों के लिए, यह नहीं होगा।मैं बात नहीं कर सकता जिसके लिए आपको मदद मिलेगी या नहीं, लेकिन काम करने के लिए संभव है - मैंने इसे सफलतापूर्वक किया है।

लेकिन यह एक बड़ा दर्द है। यदि आप कर सकते हैं तो एक विकल्प की तलाश करें।

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