我正在尝试创建一个服务,希望第三方应用程序可以使用。
消费者与SOAP 1.1兼容,这就是我在服务器上使用basicHttpBinding的原因。当实际请求发生时,似乎与服务器期望的内容类型有关的问题出现了。使用basicHttpBinding,我不明白为什么服务器仍然期望“application/soap+xml”,据我所知,这只是SOAP 1.2所需的。
我已经使用wireshark确定了它们之间的通信内容,查看下面的tcp流和设置。
感谢任何帮助。
第三方应用程序请求
POST / HTTP/1.1
SOAPAction: http://tempuri.org/ITestService/Hello
Content-Type: text/xml; charset=utf-8
Host: shdesktop:8000
Content-Length: 297
Expect: 100-continue
Connection: Close
WCF服务器响应
HTTP/1.1 415 无法处理此消息,因为内容类型“text/xml; charset=utf-8”不是预期的类型“application/soap+xml; charset=utf-8”。
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0
Date: Tue, 09 Feb 2010 14:03:19 GMT
Connection: close
服务配置
<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>