WSDL फ़ाइल से Visual Studio में वेब सेवा प्रॉक्सी बनाएँ


101

मेरे आवेदन को एक वेब सेवा से बात करने की आवश्यकता है जिसे ऑनलाइन डब्ल्यूएसडीएल परिभाषा नहीं मिली है। डेवलपर्स ने हालांकि मुझे एक WSDL फ़ाइल के साथ आपूर्ति की।

एक सार्वजनिक WSDL विज़ुअल स्टूडियो के साथ सेवा संदर्भ विज़ार्ड का उपयोग करके मेरे लिए यह कोड उत्पन्न कर सकता है। लेकिन यह सार्वजनिक WSDL के बिना काम नहीं करता है।

मैं इस WSDL फ़ाइल का उपयोग करके इस वेब सेवा से बात करने के लिए कोड कैसे उत्पन्न करूं?

जवाबों:


116

WSDL.exe और फिर अपनी परियोजना में उत्पन्न फ़ाइल (.cs) सहित का उपयोग करने का प्रयास करें ।

विज़ुअल स्टूडियो कमांड प्रॉम्प्ट (विज़ुअल स्टूडियो / स्टार्ट मेनू में टूल) के नीचे आग लगाएं, फिर टाइप करें

>wsdl.exe [path To Your WSDL File]

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


2
धन्यवाद! और आप निर्यात की गई फ़ाइल के पथ के लिए / o पैरामीटर का उपयोग कर सकते हैं। उदा> wsdl.exe उदाहरण.
com

2
और वैकल्पिक रूप से सभी वर्गों को कवर करते हुए, समान रूप से उत्पन्न फ़ाइलों के साथ संघर्ष को रोकने के लिए मैन्युअल रूप से एक नाम स्थान जोड़ें।
ब्लू क्लाउड्स

138

WSDL.exe का उपयोग करने से मेरे लिए काम नहीं किया (मुझे एक लापता प्रकार के बारे में एक त्रुटि दी), लेकिन मैं वीएस में अपने प्रोजेक्ट पर राइट-क्लिक करने और "सेवा संदर्भ जोड़ें" का चयन करने में सक्षम था। मैंने पता फ़ील्ड में wsdl फ़ाइल में पथ दर्ज किया और "गो" मारा। ऐसा लगता था कि सभी उचित प्रकारों को खोजने में सक्षम थे और कक्षाओं को सीधे मेरी परियोजना में जोड़ा।


3
उसी परिदृश्य का सामना करने और आपके सुझाव ने मुझे बहुत निराशा और शायद कुछ बाल बचाए। अच्छी तरह से योग्य प्रतिनिधि आपको दिया गया है। (अप्रत्यक्ष परिणाम के रूप में, आपने सभी साइटों पर +100 प्राप्त किया :))
शैडो विजार्ड ईयर फॉर यू

मैंने यह कोशिश की, फ़ाइल आयात की गई, लेकिन मैं अपने कोड में कक्षाएं देख सकता हूं
ग्वॉमी

1
मैंने इस विधि को MSVC 2015 का उपयोग करने की कोशिश की, लेकिन इसने URL का उपयोग करके wsdl फ़ाइल को संसाधित करने से इनकार कर दिया। इसलिए मैंने एंड्रयू एम द्वारा वर्णित विधि का उपयोग किया
हरमन

1
मैंने इसे एक विकास पीसी से आज़माया है जिसमें वेब सेवा तक पहुँचने की अनुमति नहीं है। .Wsdl फ़ाइल स्थानीय होने के बावजूद, मैंने "गो" को हिट करने पर सेवा को जोड़ने का प्रयास किया। इसलिए मैं संदर्भ नहीं जोड़ पा रहा था। इस स्थिति में मुझे लगता है कि एंड्रयू एम के समाधान को प्राथमिकता दी जानी चाहिए। इसने अच्छा काम किया।
gkonuralp

@Jffaudio im एक ऐसी ही समस्या का सामना कर रहा है जो मैं वेब प्रोजेक्ट के लिए सेवा संदर्भ जोड़ने में सक्षम हूं लेकिन wsdl.exe im का उपयोग करके प्रॉक्सी फ़ाइल उत्पन्न करने में सक्षम नहीं है। कोई उपाय ..???
प्रकाश आर।

15

साइड नोट पर: यदि आपके पास स्थानीय रूप से सभी फाइलें हैं (न केवल wsdl फ़ाइल, बल्कि xsd फाइलें भी) तो आप उस तरीके से wsdl.exe का उपयोग कर सकते हैं:

wsdl.exe [path to your wsdl file] [paths to xsd files imported by wsdl]

इस तरह wsdl.exe स्थानीय रूप से सभी निर्भरता को हल कर सकता है और सही ढंग से प्रॉक्सी वर्ग उत्पन्न करता है।

शायद यह किसी को कुछ समय बचा लेगा - यह "लापता प्रकार" त्रुटि को हल करता है जब सेवा ऑनलाइन उपलब्ध नहीं होती है।



3

कमांड लाइन से अपना प्रॉक्सी बनाने के लिए एक Microsoft डॉक्टर हैWCF

आप अपनी स्थानीय प्रति wsdl.exeइस स्थान के समान पा सकते हैं : C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools( यहां और जानें )

अंत में आपका Commandयह समान दिखना चाहिए:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\wsdl.exe"
 /language:CS /n:"My.Namespace" https://www.example.com/service/wsdl

1

अपनी डिस्क पर फ़ाइल सहेजें और फिर URL के रूप में निम्न का उपयोग करें:

file://your_path/your_file.wsdl

यह केवल एक ही है जिसने मेरे लिए काम किया है क्योंकि प्रश्न में फ़ाइल को पहले प्रमाणीकरण के बाद डाउनलोड करने की आवश्यकता है। धन्यवाद!
केविन रेडक्लिफ

-1

चूंकि वेब सेवा के लिए सच्चा बाइंडिंग URL फ़ाइल में स्थित है, आप अपनी स्थानीय मशीन से ये सरल उपाय कर सकते हैं:

1) फ़ाइल को अपने स्थानीय कंप्यूटर पर उदाहरण के लिए सहेजें:

C:\Documents and Settings\[user]\Desktop\Webservice1.asmx

2) विजुअल स्टूडियो में अपनी परियोजना पर राइट क्लिक करें> वेब संदर्भ जोड़ें चुनें, एक संवाद खुल जाएगा।

3) URL बॉक्स में C: \ Documents and Settings [user] \ Desktop \ Webservice1.asmx के ऊपर स्थानीय फ़ाइल स्थान की प्रतिलिपि बनाएँ, अगला क्लिक करें।

4) अब आप देखेंगे कि फ़ंक्शन दिखाई देंगे, संदर्भ के लिए अपना नाम चुनें, संदर्भ जोड़ें पर क्लिक करें

5) आप कर रहे हैं! आप अपने एप्लिकेशन में एक नामस्थान के रूप में इसका उपयोग करना शुरू कर सकते हैं, चिंता न करें कि आपने स्थानीय फ़ाइल का उपयोग किया है, क्योंकि वैसे भी सेवा के लिए सही URL बाइंडिंग अनुभाग में फ़ाइल में स्थित है


2
इस मौजूदा जवाब में पहले से ही सुझाव दिया गया था कि क्यों दोहराएं?
शैडो विजार्ड ईयर फॉर यू

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