WSDL का उपयोग कैसे करें


126

मुझे एक वेब सेवा का उपभोग करने की आवश्यकता है। उन्होंने मुझे WSDL फ़ाइल भेजी। मुझे इसे अपनी वेबसाइट पर जोड़ने के लिए क्या करना चाहिए और इसे प्रॉक्सी के रूप में उपयोग करना शुरू कर देना चाहिए। (यदि मैंने इसे वर्चुअल डायरेक्टरी में रखा तो इसे खोजा जा सकता है, लेकिन क्या यह मुझे वास्तविक वेब सेवा से कनेक्शन प्रदान करता है?)


9
खैर, मैं इस बात से नाराज हूं क्योंकि यह एक ऐसा सवाल है जो मुझे लगता है कि यहां अन्य उपयोगकर्ताओं को इसका जवाब देखने से फायदा होगा। मैं इस सटीक मुद्दे को खोज रहा था और मुझे खुशी है कि मैंने इसे यहां पाया।
schizoid04

जवाबों:


138

मैं विज़ुअल स्टूडियो को आग लगाऊंगा, एक वेब प्रोजेक्ट (या कंसोल ऐप - कोई फर्क नहीं पड़ता) बनाएगा।

.Net मानक के लिए:

  1. मैं प्रोजेक्ट पर राइट-क्लिक करेगा और ऐड संदर्भ मेनू से "सेवा संदर्भ जोड़ें" चुनें।
  2. मैं उन्नत पर क्लिक करूंगा, फिर Add Service Reference पर क्लिक करूंगा।
  3. मुझे wsdl का पूरा फ़ाइल पथ मिलेगा और पता बार में पेस्ट करना होगा। फिर एरो (गो बटन) को फायर करें।
  4. यदि फ़ाइल को लोड करने में कोई त्रुटि हो रही है, तो एक टूटी हुई और अनसुलझी यूआरएल होनी चाहिए जिसे नीचे दिए गए अनुसार हल करने की आवश्यकता है: यहाँ छवि विवरण दर्ज करें सूचना को ठीक करने के तरीके के बारे में इस उत्तर का संदर्भ लें: Stackoverflow का उत्तर: सेवा संदर्भ बनाने में असमर्थ wsdl फ़ाइल

यदि कोई त्रुटि नहीं है, तो आपको बस उस नामस्थान को सेट करना चाहिए जिसे आप सेवा का उपयोग करने के लिए उपयोग करना चाहते हैं और यह आपके लिए उत्पन्न होगा।

.Net कोर के लिए

  1. मैं प्रोजेक्ट पर राइट क्लिक कर Add संदर्भ मेनू से कनेक्टेड सर्विस चुनूंगा।
  2. मैं सूची से Microsoft WCF वेब सेवा संदर्भ प्रदाता का चयन करूंगा।
  3. मैं ब्राउज़ दबाऊंगा और सीधे wsdl फ़ाइल का चयन करूँगा, नाम स्थान सेट करूँगा और मैं जाने के लिए अच्छा हूँ। यदि आप किसी भी त्रुटि का सामना करते हैं, तो ऊपर त्रुटि url को देखें।

ऊपर दिए गए तरीकों में से कोई भी आपके उपयोग के लिए एक सरल, बहुत ही बुनियादी WCF क्लाइंट उत्पन्न करेगा। आपको जनरेट किए गए कोड में "YourservicenameClient" क्लास मिलनी चाहिए।

संदर्भ उद्देश्य के लिए, जेनरेट की गई सीएस फाइल आपके ओबज / डिबग (या रिलीज) / एक्सएसडीनर्जेटकोड में पाई जा सकती है और आप अभी भी टेंपेल फ़ोल्डर में डीएलएस पा सकते हैं।

निर्मित सेवा (एस) में डब्ल्यूएसडीएल अनुबंध पर परिभाषित तरीकों में से प्रत्येक के लिए विधियां होनी चाहिए।

ग्राहक को तुरंत बताएं और उन तरीकों को कॉल करें जिन्हें आप कॉल करना चाहते हैं - यही सब कुछ है!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

यदि आपको दूरस्थ URL (डिफ़ॉल्ट रूप से निर्मित एक का उपयोग नहीं करना) निर्दिष्ट करने की आवश्यकता है, तो आप इसे आसानी से प्रॉक्सी के निर्माणकर्ता में कर सकते हैं:

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

configNameउपयोग करने के लिए समापन बिंदु का नाम कहां है (आप URL को छोड़कर सभी सेटिंग्स का उपयोग करेंगे), और remoteURLकनेक्ट करने के लिए URL का प्रतिनिधित्व करने वाला एक स्ट्रिंग है (इसके बजाय कॉन्फ़िगरेशन में निहित)।


यह ठीक काम करता है। केवल एक प्रश्न, अगर मेरे पास मेरी मशीन पर wsdl फ़ाइल है, और मैं इस फ़ाइल का संदर्भ जोड़ता हूं। Url निष्पादित करते समय, यह हिट वेब सेवा की मेजबानी करता है, या क्या मुझे बाइंडिंग और एंडपॉइंट को अलग करना है?
jmayor

1
यह आपके ऊपर है - डिफ़ॉल्ट रूप से, क्लाइंट प्रॉक्सी के लिए बनाए गए कोड में वह URL होगा जो WSDL के अंदर समाहित है - यदि आपको किसी अन्य URL पर जाने की आवश्यकता है, तो आपको इसे स्वयं निर्दिष्ट करने की आवश्यकता है।
अक्टूबर को marc_s

यह इतना आसान क्यों है? वहाँ एक पकड़ नहीं है? : पी धन्यवाद!
Odys

1
स्वीकृत उत्तर के रूप में यह अच्छा होगा यदि आपने यह भी उल्लेख किया है कि एक यूआरएल से वेब होस्टेड डब्ल्यूएसडीएल का उपयोग कैसे करें।
काल्टर

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

45

दृश्य स्टूडियो में।

  • प्रोजेक्ट बनाएं या खोलें।
  • समाधान एक्सप्लोरर से राइट-क्लिक प्रोजेक्ट।
  • "सेवा रेफ़र जोड़ें जोड़ें" चुनें
  • आपके द्वारा प्राप्त WSDL के साथ पता चिपकाएँ।
  • ओके पर क्लिक करें।

यदि कोई त्रुटि नहीं है, तो आपको ऑब्जेक्ट ब्राउज़र और सभी संबंधित विधियों में सेवा संदर्भ देखने में सक्षम होना चाहिए।


9
<3 विज़ुअल स्टूडियो .. हाँ, यह वास्तव में इतना आसान है :)
cwap

3
ओपी में एक पता नहीं है लेकिन एक फाइल है।
हेनक होल्टरमैन

1
वेब सेवा के प्रदाता ने WSDL (अस्पष्टता से सुरक्षा) को निष्क्रिय कर दिया हो सकता है, इसलिए ऐसा कोई URL नहीं है जहाँ WSDL तक पहुँचा जा सके और फिर VS में वेब संदर्भ जोड़ने से काम नहीं चलेगा। हालाँकि, प्रदाता चाहता है कि आप (मेरा मतलब ओपी) यह जानने के लिए कि आपको सेवा अनुबंध के बारे में जानने की आवश्यकता है, इसीलिए उन्होंने WSDL फ़ाइल भेजी। अब ओपी को उससे प्रॉक्सी कोड जेनरेट करना होगा, सवाल यह है कि कैसे।
अज़ेगलोव

3
फ़ाइल के पथ में टाइप करके। क्या आपको लगता है कि काम नहीं करता है?
जॉन सॉन्डर्स

1
हाय @vidalsasoon क्या आप संक्षेप में बता सकते हैं कि मैं अपनी कक्षा के खोजकर्ता को इन कक्षाओं का उपयोग करने के बारे में कैसे बताता हूं। ?
कालजोन

16

WSDL से एक वेब सेवा प्रॉक्सी उत्पन्न करने के लिए WSDL.EXE उपयोगिता का उपयोग करें ।

आपको एक लंबी C # स्रोत फ़ाइल मिलेगी जिसमें एक वर्ग है जो इस तरह दिखता है:

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    ...
}

आपके क्लाइंट-साइड, वेब-सेवा-उपभोग कोड में:

  1. तत्काल MyService।
  2. इसकी Url संपत्ति सेट करें
  3. वेब तरीकों को लागू करें

5
यह एक "पुरानी शैली" ASMX Webservice बनाता है - जो अप्रचलित हैं - आजकल के बजाय WCF का उपयोग करना चाहिए
marc_s

7

यदि आप .net Core प्रोजेक्ट में wsdl संदर्भ जोड़ना चाहते हैं , तो कोई "वेब संदर्भ जोड़ें" विकल्प नहीं है।

Wsdl संदर्भ को जोड़ने के लिए समाधान एक्सप्लोरर पर जाएं, संदर्भ परियोजना आइटम पर राइट-क्लिक करें और फिर कनेक्टेड सेवा जोड़ें विकल्प पर क्लिक करें ।

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

फिर 'Microsoft WCF वेब सेवा संदर्भ' पर क्लिक करें:

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

URI पाठ बॉक्स में फ़ाइल पथ दर्ज करें और WSDL आयात करें:

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

यह एक सरल, बहुत बुनियादी WCF क्लाइंट उत्पन्न करेगा और आप इसे इस तरह से उपयोग करेंगे:

YourServiceClient client = new YourServiceClient();
client.DoSomething();

यह एक्सटेंशन मुझे दिखाई नहीं देता है।
राफेल पिजाओ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.