2011-07-06 15 views
5

से वेब सेवा प्रॉक्सी उत्पन्न करना मैं Fedex webservice के साथ काम कर रहा हूं। उन्होंने http://hostServer/WebserviceRoot/WebServiceName.asmx जैसे webservice URL प्रदान नहीं किया। इसके बजाय उन्होंने .wsdl फ़ाइल प्रदान की।WSDL C#

कृपया मुझे .wsdl फ़ाइल से वेब सेवा प्रॉक्सी कक्षाएं उत्पन्न करने और मेरी प्रोजेक्ट में एक वेब सेवा संदर्भ जोड़ने में मार्गदर्शन करें।

मैं की तरह

wsdl /l:cs /protocol:SOAP /o:MyProxy.cs mywsdl.wsdl 

wsdl से प्रॉक्सी उत्पन्न करने के लिए जानते हैं, लेकिन मुझे पता है कि यह क्या करता है चाहता हूँ। यह प्रॉक्सी क्लास बना सकता है लेकिन मैं अपने प्रोजेक्ट में वेब सेवा संदर्भ कैसे जोड़ सकता हूं?

+0

मुझे लगता है कि आपको उस डब्लूएसडीएल से सीधे _client_ बनाना चाहिए, सर्वर पहले नहीं। और यह आदेश एक ग्राहक बना रहा प्रतीत होता है। आपको लगभग पूरा किया जाना चाहिए (-: –

उत्तर

11

यदि आप मैन्युअल रूप से प्रॉक्सी कक्षाएं बना रहे हैं, तो आपको केवल उन्हें अपनी परियोजना में जोड़ना होगा। दृश्य स्टूडियो में Add Web Reference तंत्र में, इस प्रक्रिया को स्वचालित और में प्रकार जोड़ने के लिए किया जाता है।

wsdl निष्पादन योग्य है कि आप डाउनलोड करने के बाद WSDL फ़ाइल ("mywsdl.wsdl") पढ़ा जाएगा, और प्रॉक्सी कोड उत्पन्न सी # भाषा में आपका उदाहरण ("MyProxy.cs" में)। आप अपनी परियोजना में "MyProxy.cs" जोड़ सकते हैं और अपनी प्रोजेक्ट में जेनरेट किए गए क्लाइंट के इंस्टेंट को तत्काल प्रारंभ करना शुरू कर सकते हैं।

5

दृश्य स्टूडियो कमांड प्रॉम्प्ट से wsdl.exe आदेश का उपयोग करें।

पूर्व:

WSDL c:/myfile.wsdl 
1

आम तौर पर वेब सेवाओं से निपटने के लिए दो तरीके हैं। एक जैसा आपने बताया है, एक वेब सेवा यूआरएल ../service.asmx का उपयोग करें। इस तरह आपको दृश्य स्टूडियो प्रोजेक्ट में "वेब संदर्भ जोड़ें" का उपयोग करने की आवश्यकता है और आप हमेशा लाइव वेब सेवा से जुड़े रहते हैं। यह बहुत आसान है, नकारात्मकता यह है कि यदि वेब सेवा कुछ बदलने का फैसला करती है, तो आपको अपना संदर्भ भी बदलना होगा। परियोजना को पुन: संकलित करें और पुन: नियोजित करें।

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

इसके अलावा, मुझे विश्वास है कि आप WSDL फ़ाइल में <soap:address location="http://testsite.com/test.asmx" /> से पूरी वेब सेवा यूआरएल प्राप्त कर सकते हैं। आमतौर पर स्थानीय डब्लूएसडीएल फ़ाइल का उपयोग करना एक अच्छा अभ्यास नहीं है यदि आपका इरादा किसी भी बदलाव के साथ रहना है। मुझे संदेह है कि आपको यह समस्या होगी क्योंकि यह एक फेडेक्स वेब सेवा है, शायद समय के परीक्षण के माध्यम से खड़ा है।