2011-08-25 4 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

ありがとう@ラディスラフMrnka、あなたはWCFの有名人です。ありがとう –

+0

これはWCF自体とあまり関係がありません - WSDLはサービスを記述するための相互運用可能な方法です。 –

関連する問題