मैं ऐसी सेवा बनाने की कोशिश कर रहा हूं जिसकी तीसरी पार्टी को उम्मीद है कि उपभोग करना चाहिए।
उपभोक्ता SOAP 1.1 के साथ संगत है, इसलिए मैं सर्वर के लिए basicHttp बाइंडिंग का उपयोग कर रहा हूं। जब वास्तविक अनुरोध किया जाता है, तो सर्वर द्वारा अपेक्षित सामग्री प्रकारों में कुछ गलत लगता है। BasicHttp बाइंडिंग का उपयोग करके मुझे नहीं पता कि सर्वर अभी भी 'एप्लिकेशन/साबुन + एक्सएमएल' की अपेक्षा करता है, जो मेरे ज्ञान के लिए केवल एसओएपी 1.2 द्वारा आवश्यक है।
मैंने वायरसहार्क का उपयोग यह पता लगाने के लिए किया है कि वास्तव में उन दोनों के बारे में क्या संचार कर रहे थे। नीचे टीसीपी स्ट्रीम और सेटअप देखें।
किसी भी मदद की सराहना की जाती है।
डब्ल्यूसीएफ और साबुन 1.1
3 पार्टी ऐप अनुरोध
पोस्ट/HTTP/1.1
SOAPAction: http://tempuri.org/ITestService/Hello
सामग्री प्रकार: text/xml; charset = utf-8
मेजबान: shdesktop: 8000
सामग्री-लंबाई: 297
अपेक्षा: 100-जारी रखने के
कनेक्शन: बंद
WCF सर्वर प्रतिक्रिया
HTTP/1.1 415 संदेश संसाधित नहीं कर सकता क्योंकि सामग्री प्रकार 'टेक्स्ट/xml; charset = utf-8 ' अपेक्षित प्रकार' एप्लिकेशन/साबुन + xml नहीं था; charset = utf-8 '।
सामग्री-लंबाई: 0
सर्वर: माइक्रोसॉफ्ट HTTPAPI/2.0
दिनांक: मंगल, 09 फ़र, 2010 14:03:19 GMT
कनेक्शन: करीब
सेवा विन्यास
<system.serviceModel>
<services>
<service behaviorConfiguration="behTestService" name="ConsoleApplication1.TestService">
<endpoint address="" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint address="TestService" binding="basicHttpBinding"
contract="ConsoleApplication1.ITestService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="behTestService">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
ओह, एसओएपी 1.1 'एप्लिकेशन/साबुन + एक्सएमएल' का उपयोग करेगा? मैं कल वेब पर परीक्षण करूँगा, धन्यवाद! मुझे एक तथ्य के बारे में पता है कि जब मैं एक साधारण एएसएमएक्स सेवा बनाता हूं, तो यह काम करता है, अगर इससे कोई फर्क पड़ता है। –
@ सिलास: "पुरानी शैली" एएसपी.नेट वेबसाइसेस (एएसएमएक्स) ** और ** डब्लूसीएफ मूल एचटीपी बाइंडिंग एसओएपी 1.1 का उपयोग करें - तो यह वास्तव में ठीक होना चाहिए। आपको यह जांचने की ज़रूरत है कि आपका ग्राहक आपको एक एसओएपी अनुरोध भेज रहा है या सिर्फ अपने यूआरएल –
पर एक्सएमएल पोस्ट करने का प्रयास कर रहा है, मैं http: // पर कॉल कर रहा था, इसके बजाय मुझे http: // /TestService पर कॉल करने की आवश्यकता थी। मेरे द्वारा बेवकूफ गलती हालांकि सभी मदद के लिए धन्यवाद! –