2011-06-07 11 views
12

मैं this problem के साथ कुछ दिनों के लिए संघर्ष कर रहा हूं, प्रक्रिया में बाइंडिंग पर बहुत सारी चीजें सीख रहा हूं। एक चीज मुझे पहेली करती है, यद्यपि: विभिन्न लिंक (उदाहरण के लिए this या that देखें) स्पष्ट रूप से "डिफ़ॉल्ट रूप से, WCF प्रोजेक्ट WsHttp बाइंडिंग का उपयोग करके बनाया गया है", लेकिन यह मैं नहीं देखता हूं। यह मैं क्या कर रहा है:डिफ़ॉल्ट डब्ल्यूसीएफ बाध्यकारी क्या है?

  1. ओपन दृश्य स्टूडियो 2010 और नया प्रोजेक्ट/विजुअल C#/WCF सेवा अनुप्रयोग
  2. कोड के अंदर कुछ भी मत छुओ, सेवा के लिए एक स्थानीय आईआईएस यूआरएल (जैसे कि सेट http://localhost/WcfService7)
  3. ओपन soapUI और चुन फ़ाइल/नई साबुन यूआई परियोजना/नव निर्मित wsdl का url दर्ज करें: http://localhost/WcfService7/Service1.svc?wsdl, किसी भी अन्य विकल्प
  4. इंटरफ़ेस गुण को छू नहीं: सोप संस्करण = SOAP 1.1, बाध्यकारी = "BasicHttpBinding_IService1" (भले ही यह सिर्फ एक नाम है, यह एक संकेत का नरक है)
  5. ओपन Altova XMLSpy और सोप/नई सोप अनुरोध बनाएं/wsdl का url दर्ज करें/किसी भी आपरेशन
  6. सोप/बदलें सोप अनुरोध पैरामीटर/सुनिश्चित करें कि "सोप + एक्सएमएल (सोप 1.2) के रूप में भेजें"
  7. चेक किया गया है का चयन
  8. सोप/सर्वर के लिए अनुरोध भेजें: मैं त्रुटियों मिल

    HTTP त्रुटि: सर्वर 'स्थानीय होस्ट' पर फ़ाइल '/WcfService7/Service1.svc' पोस्ट नहीं कर सके (415)

    त्रुटि साबुन डेटा भेजने 'http://localhost/WcfService7/Service1.svc' HTTP त्रुटि: सर्वर '10.51 पर फ़ाइल '/WcfService7/Service1.svc' पोस्ट नहीं कर सका। 0.108 '(415)

कोई स्पष्टीकरण? धन्यवाद

उत्तर

11

आईआईएस में डब्ल्यूसीएफ सेवा (डब्ल्यूसीएफ सेवा अनुप्रयोग प्रोजेक्ट टेम्पलेट का उपयोग करके) डिफ़ॉल्ट रूप से .svc फ़ाइल (इसके सेवा होस्ट फैक्ट्री को बदले बिना) डिफ़ॉल्ट बाध्यकारी basicHttpBinding है। आप डिफ़ॉल्ट wsHttpBinding के लिए बाध्य बदलना चाहते हैं आप का उपयोग करना चाहिए:

<protocolMapping> 
    <add scheme="http" binding="wsHttpBinding"/> 
</protocolMapping> 

आपकी सेवा के विन्यास फाइल में, लेकिन यह आपकी समस्या का समाधान नहीं होगा क्योंकि आप wsHttpBinding की जरूरत नहीं है और मुझे याद Altova XMLSpy भेजने में सक्षम नहीं है wsHttpBinding के लिए वैध अनुरोध क्योंकि यह डब्ल्यूएस- * प्रोटोकॉल के बिना केवल मूल SOAP स्टैक का समर्थन करता है।

2

डिफ़ॉल्ट SOAP 1.1 का उपयोग कर Basichttpbinding है।

यही कारण है कि आपको इसे SOAP 1.2 के रूप में भेजने में त्रुटि मिलती है।

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