केवल भौतिक wsdl फ़ाइल के साथ सेवा संदर्भ कैसे उत्पन्न करें


123

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

मुझे पता है कि यह एक n00b प्रश्न है और मुझे यह पूछने में शर्म आ रही है, लेकिन मैं अपने क्लाइंट में समतुल्य सेवा संदर्भ जानकारी कैसे बना सकता हूं जब मेरे पास मेरे पास उपलब्ध सभी wsdl की एक भौतिक प्रति है जो ग्राहक ने मुझे ईमेल की है? Web.config में परिवर्तन, SOAP डेटा पर ऑब्जेक्ट लेयर आदि, जैसे एक स्वचालित सेवा संदर्भ के साथ मैं बस सेवा से एक कनेक्शन खोलना चाहता हूं और इसे परिभाषित वस्तुओं के साथ उपयोग करना शुरू करता हूं।

तीसरी पार्टी सेवा WCF नहीं है जहाँ तक मैं बता सकता हूँ लेकिन SOAP है। मैं VS 2010 btw का उपयोग कर रहा हूँ। अग्रिम धन्यवाद, केन


जवाबों:


180

यह सबसे आसान तरीका हो सकता है

  • प्रोजेक्ट पर राइट क्लिक करें और "सेवा संदर्भ जोड़ें ..." चुनें
  • पता: बॉक्स में, डाउनलोड / संशोधित wsdl का भौतिक पथ (C: \ test \ project ....) दर्ज करें।
  • मारो मारो

11
यदि आप उद्धरण के रूप में "कॉपी ऐज पाथ" का उपयोग करते हैं।
ओ। जोन्स

जब wsdl को किसी और के साथ गुजरने के लिए सहेजा जाता है, तो क्रोम में webservice से wsdl के "व्यू सोर्स" ने मुझे एक काम करने वाला wsdl दिया, जबकि IE11 नहीं। YMMV।
archangel76

68

इस बारे में जाने के दो तरीके हैं। आप या तो WSDL जेनरेट करने के लिए IDE का उपयोग कर सकते हैं, या आप इसे कमांड लाइन के माध्यम से कर सकते हैं।

1. आईडीई के माध्यम से इसे बनाने के लिए:

समाधान एक्सप्लोरर फलक में, उस परियोजना पर राइट क्लिक करें जिसे आप सेवा में जोड़ना चाहते हैं:

यहाँ छवि विवरण दर्ज करें

फिर, आप अपनी सेवा WSDL और हिट गो के लिए पथ दर्ज कर सकते हैं:

यहाँ छवि विवरण दर्ज करें

2. कमांड लाइन के माध्यम से इसे बनाने के लिए:

VS 2010 कमांड प्रॉम्प्ट खोलें (प्रोग्राम्स -> विजुअल स्टूडियो 2010 -> विजुअल स्टूडियो टूल्स)
फिर निष्पादित करें:

WSDL /verbose C:\path\to\wsdl

WSDL.exe तब आपकी खपत के लिए एक .cs फ़ाइल का उत्पादन करेगा।

यदि आपके पास अन्य निर्भरताएं हैं, जो आपको फ़ाइल के साथ मिलीं, जैसे कि xsd की, तो उन्हें तर्क सूची में जोड़ें:

WSDL /verbose C:\path\to\wsdl C:\path\to\some\xsd C:\path\to\some\xsd

यदि आपको वीबी आउटपुट की आवश्यकता है, तो /language:VBइसके अतिरिक्त उपयोग करें /verbose


मुझे नामस्थान 'blahURL' से बाध्यकारी 'ब्लाह' आयात करने में असमर्थ और ऑपरेशन 'SomeRequest' आयात करने में असमर्थ, तत्व 'xxx' गायब है। क्या इसका मतलब यह है कि उन्हें मुझे कुछ और समर्थन फाइलें देने की जरूरत है, या यह कि उनकी सुरक्षा इतनी कमजोर है कि मैं कुछ भी नहीं कर सकता?
kfoster

यह निश्चित रूप से लगता है जैसे आप निर्भरता याद कर रहे हैं। डब्लूएसडीएल खोलें और शीर्ष पर देखें। यदि आप importउन पंक्तियों को देखते हैं, जिनमें एक स्कीमा पथ के बाद एक xsd पथ है, तो आपको उन xsd फ़ाइलों की भी आवश्यकता होगी।
लिन क्रंबलिंग

प्रतिक्रिया के लिए धन्यवाद। मेरे पास क्लाइंट के साथ एक उत्कृष्ट ईमेल है, यह देखने के लिए कि क्या मुझे आवश्यक xsd आयात मिल सकता है। यह इतना निराशाजनक है, हालांकि, जब मैंने सही किया तो मैं सिर्फ एक URL को ServiceReference संवाद में पॉप करता हूं, एक बटन और वायोला धक्का देता हूं! मैं एक सेवा पद्धति को कॉल करने से कोड की लगभग 3 पंक्तियाँ दूर हूँ। पूरी प्रक्रिया में लगभग 5 मिनट लगते हैं। लेकिन मैं इस क्लाइंट के साथ हफ्तों से काम कर रहा हूं और कोई भी जगह नहीं मिली है, क्योंकि उनके सुरक्षा लोग वेब के माध्यम से किसी भी सेवा परिभाषा तक नहीं पहुंचेंगे।
15

वह मोटा है। मैं वर्तमान में किसी प्रोजेक्ट के लिए vpn कनेक्शन पर प्रतीक्षा कर रहा हूं, स्वयं। सौभाग्य से, उन्होंने मुझे wsdl दिया और समय से पहले xsd डॉक्स के साथ। तो क्या आपको वो आयात wsdl में मिला?
लिन क्रंबलिंग

हाँ। 4 सेवाओं के लिए टर्न आउट उन्होंने मुझे उनमें से 2 के लिए wsdl और अन्य 2 के लिए xsd के लिए दिया ताकि किसी भी सेवा के लिए फ़ाइलों का पूरा सेट न हो। लेकिन मुझे आखिरकार xsd मिल गया और 2 सेवाओं के लिए .cs फाइलें उत्पन्न करने में सक्षम हो गया, अन्य 2 मुझे मानकर चलेंगे। धन्यवाद।
kfoster
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.