2009-06-04 8 views
93

मेरे पास पुरानी डब्लूएसडीएल फ़ाइल है और मैं इस डब्लूएसडीएल फ़ाइल के आधार पर एक सर्वर बनाना चाहता हूं।डब्ल्यूसीएफ सेवा बनाने के लिए डब्लूएसडीएल फ़ाइल का उपयोग कैसे करें (कॉल न करें)

डब्लूएसडीएल एएसएमएक्स से उत्पन्न होता है (मुझे लगता है लेकिन मुझे यकीन नहीं है)।

मैं इसे कैसे प्राप्त कर सकता हूं?


original question जहां ओपी सोचा था कि वह एक ग्राहक डबल्यूएसडीएल के आधार पर बनाने के लिए आवश्यक।

उत्तर

105

svcutil का उपयोग करके, आप WSDL से इंटरफेस और कक्षाएं (डेटा अनुबंध) बना सकते हैं।

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic) 

यह जो सभी आवश्यक वस्तुओं में शामिल है एक फ़ाइल "your.cs" सी # (या "your.vb" VB.NET में) में कहा जाता है पैदा करेगा।

अब, आपको एक कक्षा "MyService" बनाने की आवश्यकता है जो सेवा इंटरफ़ेस (IServiceInterface) - या कई सेवा इंटरफेस को लागू करेगा - और यह आपका सर्वर उदाहरण है।

अब एक वर्ग स्वयं वास्तव में मदद नहीं करता है - आपको कहीं भी सेवा होस्ट करने की आवश्यकता होगी। आपको या तो अपना स्वयं का सर्विसहोस्ट इंस्टेंस बनाना होगा जो सेवा होस्ट करता है, एंडपॉइंट्स को कॉन्फ़िगर करता है और आगे - या आप आईआईएस के अंदर अपनी सेवा होस्ट कर सकते हैं।

+0

मैंने svcutil के साथ ऐसा करने की कोशिश की, लेकिन वास्तव में दोषों के साथ सफल नहीं हुआ। क्या आपके पास मेरी समस्या के लिए शायद कुछ सुझाव हो सकते हैं: http://goo.gl/dlen – Juri

+11

"svcutil your.wsdl your.xsd" जो मुझे काम करने के लिए जरूरी है! धन्यवाद! –

+2

wsdl और xsd को एक प्रारूप में डाउनलोड करने के बारे में जानकारी के लिए यह SO उत्तर देखें, जो svcutil पसंद करेंगे। http://stackoverflow.com/questions/286657/what-is-the-best-way-to-download-all-of-the-wsdl-files-exposed-by-a-wcf-service –

7

आप ग्राहक कोड उत्पन्न करने के लिए svcutil.exe का उपयोग कर सकते हैं। इसमें सेवा अनुबंध की परिभाषा और किसी भी डेटा अनुबंध और गलती अनुबंध की आवश्यकता होगी।

फिर, क्लाइंट कोड को हटाएं: कक्षा अनुबंध जो सेवा अनुबंध लागू करते हैं। फिर आपको अपनी सेवा में स्वयं को लागू करने की आवश्यकता होगी।

39

यदि आप जानते हैं कि क्या खोजना है तो वहां अच्छे संसाधन हैं। "अनुबंध प्रथम" और डब्ल्यूसीएफ आज़माएं। या "डब्लूएसडीएल फर्स्ट" और डब्ल्यूसीएफ।

+2

डब्लूएसडीएल-फर्स्ट * आलेख के मूल अवलोकन के अनुसरण करने वाले किसी भी व्यक्ति के लिए: उस टिप्पणी का ध्यान रखें जो ' ReplyAction = "*" '। ऐसा प्रतीत होता है कि आपको इससे छुटकारा पाने की ज़रूरत है। उस टिप्पणी से स्पष्टीकरण का एक निशान है जो तर्क देता है, लेकिन मैंने इसे पढ़ा नहीं है। –

28

उपयोग svcutil एक नि: शुल्क ऐड-इन दृश्य स्टूडियो को सक्षम करने के अनुबंध-सबसे पहले डिजाइन करने के लिए। /sc जेन पर स्विच के साथ exe डब्ल्यूसीएफ अनुबंधों को मिटा दें। यह एक कोड फ़ाइल तैयार करेगा जिसे आप अपनी परियोजना में जोड़ सकते हैं। इसमें आपकी सेवा बनाने के लिए आवश्यक सभी इंटरफेस और डेटा प्रकार होंगे। /o स्विच का उपयोग करके आउटपुट स्थान बदलें, या आप उस फ़ोल्डर में फ़ाइल पा सकते हैं जहां आपने svcutil.exe चलाया था। डिफ़ॉल्ट भाषा सी # है लेकिन मुझे लगता है (मैंने कभी कोशिश नहीं की है) आपको /l:vb का उपयोग करके इसे बदलने में सक्षम होना चाहिए।

svcutil /sc "WSDL file path" 

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

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path" 

फिर अपनी सेवा की एक नई कक्षा बनाएं और आपके द्वारा बनाए गए अनुबंध इंटरफ़ेस को कार्यान्वित करें।

+0

यह भी देखें: [किसी अन्य के डब्लूएसडीएल को कैसे कार्यान्वित करें पर एमएसडीएन] (https://msdn.microsoft.com/en-us/library/ms735109 (v = vs.110) .aspx) – sq33G

1

दृश्य स्टूडियो में "सेवा संदर्भ जोड़ें" उपकरण का उपयोग करके आप पता लगा सकते हैं के रूप में:

फ़ाइल: ///path/to/wsdl/file.wsdl

और यह ठीक से लोड होगा।

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