我正在嘗試創建第三方應該消費的服務。
使用者與SOAP 1.1兼容,這就是爲什麼我使用basicHttpBinding作爲服務器的原因。當發出實際的請求時,服務器預期的內容類型似乎出了問題。使用basicHttpBinding我不明白爲什麼服務器仍然期望'application/soap + xml',據我所知,這只是SOAP 1.2所必需的。
我已經使用wireshark來弄清楚這兩個人正在溝通什麼。請參閱下面的tcp流和設置。
任何幫助表示讚賞。
WCF和肥皂1.1
第三方應用程序請求
POST/HTTP/1.1
的SOAPAction: http://tempuri.org/ITestService/Hello
內容類型:文本/ XML;字符集= UTF-8
主機:shdesktop:8000
的Content-Length:297
期望值:100繼續
連接:關閉
WCF服務器響應
HTTP/1.1 415無法處理 消息,因爲內容類型 'text/xml; charset = utf-8'不是 預期的類型'application/soap + xml; charset = utf-8'。
的Content-Length:0
服務器:HTTPAPI/2.0
日期:星期二,2010 09 2 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>
哦,SOAP 1.1會使用'application/soap + xml'?我明天會測試webHttpBinding,謝謝!我知道一個事實,即當我創建一個簡單的asmx服務時,它會起作用,如果它有所作爲。 – 2010-02-09 17:35:47
@Silas:「老式」ASP.NET webservices(ASMX)**和** WCF basicHttpBinding使用SOAP 1.1 - 所以應該沒問題,真的。您需要檢查您的客戶端是向您發送SOAP請求,還是僅僅嘗試向您的URL發佈XML – 2010-02-09 19:46:37
我打電話給http://,而不需要撥打http:// /TestService。我愚蠢的錯誤。感謝所有的幫助! –
2010-02-16 14:19:54