2008-09-30 21 views
15

पर कॉल करते समय HTTP स्थिति 405 "विधि अनुमत नहीं है" को हल करने के लिए मुझे एक सिल्यूशन मिला है जहां मुझे डब्लूएसई 2.0 सुरक्षा के साथ एक एसओएपी वेब सेवा तक पहुंचने की आवश्यकता है। मैं सभी उत्पन्न सी # प्रॉक्सी (जो Microsoft.Web.Services2.WebServicesClientProtocol से प्राप्त कर रहे), मैं प्रमाण पत्र को लागू करने कर रहा हूँ मिल गया है, लेकिन जब मैं एक विधि कॉल मैं कोई त्रुटि मिलती है:वेब सेवा

System.Net.WebException : The request failed with HTTP status 405: Method Not Allowed. 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 

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

क्या कोई इस पर कुछ प्रकाश डाल सकता है मुद्दा?

उत्तर

18

ठीक है, पता चला कि समस्या क्या थी। मैं .asmx url के बजाय .wsdl url को कॉल करने का प्रयास कर रहा था। दोह!

+0

और मैं servis नाम (x.asmx) के बिना कॉल करने का प्रयास कर रहा था, मैंने केवल मूल निर्देशिका के साथ यूआरएल छोड़ा, धन्यवाद – mkb

0

हम्म उन अन्य क्लाइंट भी सी #/.NET का उपयोग कर रहे हैं?

विधि की अनुमति नहीं है -> क्या यह एक एसओएपी वेब सेवा की बजाय एक आरईएसटी सेवा हो सकती है?

+0

पता नहीं है। जांच करेगा यह एक साबुन वेब सेवा है। – Muxa

+0

तो प्रॉक्सी उत्पन्न किया गया डब्लूएसडीएल से तो यह एक एसओएपी वेब सेवा होगी। – Kev

4

मैं एक ही समस्या थी, लेकिन विवरण अलग थे:

यूआरएल हम इस्तेमाल कर रहे थे फ़ाइल (.asmx) हिस्सा नहीं था। ब्राउज़र में यूआरएल को कॉल करना ठीक था। यह विजुअल स्टूडियो के माध्यम से यूआरएल को स्थापित करने वाले एक साधारण ग्राहक में भी काम करता है। लेकिन यह गतिशील रूप से यूआरएल स्थापित करने में काम नहीं किया! यह वही 405 त्रुटि दे दी।

अंत में हमने पाया कि वेब सेवा यूआरएल में फ़ाइल भाग जोड़ने से समस्या हल हो गई। शायद एक नेट फ्रेमवर्क बग?

4

मुझे पता चला कि यह आईआईएस पर डब्ल्यूसीएफ स्थापित नहीं किया गया था। मुख्य बात यह है कि आईएसआई See MSDN here. में .svc एक्सटेंशन को मैप किया जाना है स्थापना को पूरा करने के लिए ServiceModelReg टूल का उपयोग करें। आप हमेशा यह सत्यापित करना चाहते हैं कि डब्ल्यूसीएफ स्थापित है और आईएसआई में एसएससी को मैप किया गया है जब भी आपको कोई नई मशीन मिलती है या आईआईएस को पुनर्स्थापित किया जाता है।

0

विधि नोट नहीं किया गया HTTP स्थिति 405 के लिए आवंटित। MethodNotAllowed इंगित करता है कि अनुरोधित संसाधन पर अनुरोध विधि (POST या GET) की अनुमति नहीं है।

समस्या आपके एनपॉइंट में है यूरी wcf - .scv पर पूर्ण या सही एड्रेस नहीं है, अपने proxy.enpoint या wcf client.enpoint uri को सही करें।

0

मेरे मामले में समस्या यह थी कि ऐप कॉन्फ़िगर गलत तरीके से गठित/बुलाया गया था: कॉन्फ़िगरेशन में सेवा यूआरएल "लोकलहोस्ट" डोमेन नाम के रूप में उपयोग कर रहा था, लेकिन असली होस्टनाम यूआरएल से अलग था जिसे मैंने बुलाया था :(इसलिए मैंने बदल दिया "स्थानीय होस्ट" config में thah मैं URL में उपयोग domainname है। यही सब! अगर othe rclients भी नेट का उपयोग कर रहे