WCF BasicHttpBinding - 我在哪里可以找到WSDL中的SOAP1.1

时间:2011-08-25 10:53:59

标签: wcf soap wsdl

我一直在尝试找出使用WCF BasicHTTPBinding生成的WSDL中使用的SOAP 1.1 / 1.2版本。但我无法确定。

我需要确认这一点,以便告诉客户我们正在使用特定版本的SOAP。要求是使用SOAP 1.1。从我读到的BasicHttpBinding使用SOAP1.1但无法找到或检查。

请有人帮忙。 e.g。

<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/">

1 个答案:

答案 0 :(得分: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,因为{1}}前缀是为SOAP 1.1名称空间定义的。如果它使用soap前缀,则意味着SOAP 1.2。

如果WCF服务有多个端点,它将具有多个soap12元素,每个元素都可以引用自己的wsdl:port规范,其中包含不同版本的SOAP和不同的策略(我在示例中跳过了策略引用)。

WCF中的BasicHttpBinding始终使用SOAP 1.1。