我有一套工作的WCF Web服務,編碼爲.NET 4.6 - 它們正在向服務器發出呼叫。所以,他們運行在一個.EXE(實際上最終將作爲Windows服務運行)。WCF尋址 - 刪除WSA:TO元素
這些Web服務需要支持WS-Addressing的標準:
W3C Web服務尋址1.0 - 核心http://www.w3.org/TR/2006/REC-ws-addr-core-20060509
該版本的標準規定了WSA的:TO元素是可選的。我需要的是WSA:TO元素根本不出現在SOAP輸出中。我想這樣做,而不必編寫自定義SOAP編寫器,因爲我也需要使用WS-SECURITY。我GOOGLE等等等等
在我綁定的配置我有:
<binding name="MyServiceThatMustNotSendWSATO">
<textMessageEncoding messageVersion="Soap12WSAddressing10" />
<httpTransport />
</binding>
隨着終點:
<endpoint address="http://destinationserver.com/SomeServiceName/V1"
behaviorConfiguration="cliBeh" binding="customBinding" bindingConfiguration="MyServiceThatMustNotSendWSATO"
contract="SomeContract.SomeMethod" name="SomeEndPointName">
<identity>
<dns value="somedns" />
</identity>
</endpoint>
我已經試過可用textMessageEncoding messageVersion的所有組合,但WSA:TO元素仍然生成:(
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">tns:ServiceEntryStatusOut_V1</a:Action>
<a:MessageID>urn:uuid:88eda3c6-2b6a-4672-8e96-28f0e91c8b4c</a:MessageID>
<a:RelatesTo>urn:uuid:1f19a9f3-6e46-47cc-b190-cc7ef71dbc67</a:RelatesTo>
<a:To s:mustUnderstand="1">http://www.com/</a:To>
</s:Header>
所以在堅果殼中,我需要W S-Address字段,例如Action,Message ID,RelatesTo,但不是To元素。