2011-08-25 53 views
6

我一直在試圖找出在使用WCF BasicHTTPBinding生成的WSDL中正在使用哪個版本的SOAP 1.1/1.2。但我一直無法指出。WCF BasicHttpBinding - 我在哪裏可以找到WSDL中的SOAP1.1

我需要確認一下,以便我可以告訴我客戶我們正在使用特定版本的SOAP。要求是使用SOAP 1.1。從我讀的BasicHttpBinding使用SOAP1.1,但無法找到或檢查。

有人可以請幫忙。 例如

<wsdl:definitions name="MyService" targetNamespace="http://mydomain.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://spotless.com/isb/services" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 

回答

9

在您的WSDL定義中,WCF包含SOAP 1.1的命名空間。和SOAP 1.2。 SOAP 1.1的命名空間前綴爲soap。 SOAP 1.1端點將只使用此命名空間:

<wsdl:binding name="SomeBinding" type="..."> 
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> 
    <wsdl:operation name="GetTime"> 
    <soap:operation soapAction="..." style="..." /> 
    <wsdl:input name="..."> 
     <soap:body use="..." /> 
    </wsdl:input> 
    <wsdl:output name="..."> 
     <soap:body use="..." /> 
    </wsdl:output> 
    </wsdl:operation> 
</wsdl:binding> 
<wsdl:service name="..."> 
    <wsdl:port name="..." binding="tns:SomeBinding"> 
    <soap:address location="..." /> 
    </wsdl:port> 
</wsdl:port> 

你看到了所有這些元素通過soap前綴?這意味着SOAP 1.1,因爲soap前綴是爲SOAP 1.1命名空間定義的。如果它使用soap12前綴,它將意味着SOAP 1.2。

如果WCF服務有多個端點,它將有多個wsdl:port元素,每個元素可以使用不同版本的SOAP和不同策略(我在示例中跳過策略引用)引用它自己的wsdl:binding規範。

WCF中的BasicHttpBinding始終使用SOAP 1.1。

+0

Thanks @Ladislav Mrnka,你是WCF genious。謝謝 –

+0

這與WCF本身沒什麼關係 - WSDL是可互操作的方式來描述服務。 –