Tut WCF unterstützt WS-Security mit SOAP 1.1?

Brauche ich um eine 3. Web services, die erfordern, dass WS-Security. Erstellt habe ich eine WCF-Endpunkt mit der folgenden Konfiguration:

<system.serviceModel>
  <bindings>
    <wsHttpBinding>
      <binding name="TestBinding">
        <security mode="TransportWithMessageCredential">
          <message clientCredentialType="Certificate" />
        </security>
      </binding>
    </wsHttpBinding>
  </bindings>
  <behaviors>
    <endpointBehaviors>
      <behavior name="TestBehavior">
        <callbackDebug includeExceptionDetailInFaults="true" />
        <clientCredentials>
          <clientCertificate findValue="Acme" storeLocation="CurrentUser" storeName="My" x509FindType="FindBySubjectName" />
          <serviceCertificate>
            <authentication certificateValidationMode="PeerOrChainTrust" />
          </serviceCertificate>
        </clientCredentials>
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <client>
    <endpoint address="https://acme.com/webservices" binding="wsHttpBinding" bindingConfiguration="TestBinding" behaviorConfiguration="TestBehavior" contract="AcmeContract" name="AcmeEndpoint"></endpoint>
  </client>
</system.serviceModel>

Das problem ist, dass die 3rd-party-Servern werfen die folgende Ausnahme:

Erhielt Protokoll
'_http://schemas.xmlsoap.org/wsdl/soap12/',
erforderliche Protokoll
'_http://schemas.xmlsoap.org/wsdl/soap/'.

Ich verstehen, dass die Verwendung der wsHttpBinding dazu führt, dass WCF senden einer SOAP-1.2-Anforderung während der Verwendung der "basicHttpBinding" wird in Folge einer SOAP 1.1-Anfrage. Seit der WS-Security-Teile sind erforderlich, wie ich es verstehe, muss ich das wsHttpBinding. Meine Frage ist, wie kann ich erzwingen, eine SOAP 1.1-Anfrage? Was sind meine Optionen?

InformationsquelleAutor Stefan Moser | 2011-03-23
Schreibe einen Kommentar