2011-09-19 15 views
12

के लिए प्रेषण विधि नहीं ढूंढ सकता WSDL का उपयोग कर एक वेब सेवा कॉल के लिए, मुझे त्रुटि Cannot find dispatch method for {http://ws.somecompany.com/services}ValidateUser मिल रही है, इसका क्या अर्थ है? क्या इसका मतलब है कि इसे ValidateUser नहीं मिल रहा है?डब्ल्यूएसडीएल

उत्तर

17

इसका आम तौर पर मतलब है कि एसओएपी ढांचे को इस अनुरोध के माध्यम से ऑपरेशन नहीं मिल सका। एक एसओएपी ढांचा आमतौर पर संदेश को ऑपरेटर को संदेश को रूट करने के तरीके के बारे में पॉइंटर्स ढूंढने का निरीक्षण करता है। इस त्रुटि के कारण ज्यादातर कॉन्फ़िगरेशन समस्याएं हैं (अलग-अलग नामस्थान, विभिन्न एन्कोडिंग (आरपीसी बनाम दस्तावेज़/जला), डब्ल्यूएस-एड्रेसिंग बनाम सादा एसओएपी आदि का उपयोग)

+0

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

+0

किया जाता है मेरी मामले में समस्या यह थी कि '' '' ' जो' की 'में संदर्भित है की' 'में संदर्भित ' नहीं था वही ** नेमस्पेस ** '' के रूप में। इनपुट पैरामीटर को लपेटने से बचने के लिए यह वही नाम होना चाहिए। – msa

14

मुझे एक जैसी समस्या थी और संघर्ष करना, 1 के लिए googling दिन।

{http://ws.somecompany.com/services}ValidateUser 

यह होना चाहिए

{http://ws.somecompany.com/services/}ValidateUser 

मैं अपने डबल्यूएसडीएल स्पष्ट रूप से जाँच नहीं की थी: लेकिन यह एक साधारण गलती है कि बजाय था।

+1

हां, वे गंदा हैं। नामस्थान यूआरआई में http और https के बीच अंतर को देखकर भी एक आम गलती है। – vanto

2

मेरे मामले में मैंने यह सुनिश्चित करके हल किया कि मेरी कॉन्फ़िगरेशन फ़ाइल या तो आपके क्लाइंट के आधार पर app.config या web.config सही एंडपॉइंट है। मेरे अंतराल में मुझे गलत पता था। मैंने इसे बदल दिया और यह ठीक काम किया।

1

मैंने इस मुद्दे पर एक दिन भी खो दिया, हालांकि एक अलग मूल कारण के साथ।

हमारे मामले में, गुण फ़ाइल में दो समान एंडपॉइंट यूआरएल मिश्रित हो गए थे। दोनों सेवाएं मौजूद थीं और चल रही थीं, लेकिन डब्ल्यूएसडीएल का मिलान नहीं हुआ था, इसलिए कनेक्शन कनेक्शन के बजाय, हमें यह SOAPFaultException मिल रहा था: "प्रेषण विधि नहीं मिल सका"।

0

मेरा पचास प्रतिशत, मुझे एक ही त्रुटि संदेश मिला लेकिन मेरा मामला अभी भी ऊपर से अलग था, इसलिए उम्मीद है कि यह किसी की मदद कर सकता है।

मेरे पास .wsdl फ़ाइल थी, जो मेरे ज्ञान के बिना पुरानी हो गई थी जब डब्ल्यूएस के दूसरी तरफ सहकर्मियों ने कुछ तत्व का नाम बदल दिया था। दुर्भाग्यवश, जब मैंने उनकी तुलना में .wsdl की तुलना की थी तो परिवर्तन दिखाई नहीं दे रहा था क्योंकि .wsdl फ़ाइल में .xsd आयात था जिसमें वास्तव में नामित तत्व शामिल था। परिवर्तन मिलने के बाद, मैंने अपनी .xsd फ़ाइल और tada अद्यतन किया! त्रुटि चली गई है और यह काम किया।

0

मेरे मामले में, निम्न अपवाद मेरे सिर कुछ ही घंटों की पिटाई करने के बाद भी मैं आपूर्ति गए सभी मापदंडों

SoapFault exception: [S:Client] Cannot find dispatch method for {}parameters in 

फेंक रहा था, बस थोड़ी देर के आरंभ SoapClient समस्या हल एक \ जोड़ने।

से:

$client = new SoapClient($soapURL); 

करने के लिए:

$client = new \SoapClient($soapURL); 
0

मैं यूआरएल एक ही सेटिंग के रूप में "http://x-xxx-xx-xx-01:8080//TestProject/testproject?wsdl" (डमी यूआरएल) समस्या हल मेरी नेट आवेदन में एक ही मुद्दा था, मेरे मामले में नीचे कोड में।

Vb.Net

Dim rptGen as WSTestProject.testproject = Nothing 
rptGen = New WSTestProject.testproject With { 
     .Url = "http://x-xxx-xx-xx-01:8080//TestProject/testproject?wsdl", 
     .Timeout = 1200000 
     } 

यहाँ, WSTestProject WebService नाम स्थान है और testproject वेब विधि है।

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