13 Stimmen

Was ist die Standard-WCF-Bindung?

Ich kämpfe seit ein paar Tagen mit dieses Problem Dabei habe ich eine Menge über Bindungen gelernt. Eine Sache verwirrt mich allerdings: Verschiedene Links (siehe o que zum Beispiel) ausdrücklich angeben "Standardmäßig wird das WCF-Projekt mit WsHttpBinding erstellt", aber das ist nicht das, was ich sehe. Dies ist, was ich tue:

  1. Öffnen Sie Visual Studio 2010 und wählen Sie Neues Projekt / Visual C# / WCF Service Application
  2. Berühren Sie nichts innerhalb des Codes, setzen Sie eine lokale IIS Url für den Dienst (z.B. http://localhost/WcfService7 )
  3. Öffnen Sie soapUI und wählen Sie File / New Soap UI Project / enter the url of the newly created wsdl: http://localhost/WcfService7/Service1.svc?wsdl keine andere Option in Betracht ziehen
  4. Eigenschaften der Schnittstelle: SOAP Version = SOAP 1.1, Binding = "BasicHttpBinding_IService1" (auch wenn es sich nur um einen Namen handelt, ist es doch ein sehr guter Hinweis)
  5. Öffnen Sie Altova XmlSpy und wählen Sie SOAP / Neue SOAP-Anfrage erstellen / geben Sie die URL der wsdl ein / wählen Sie eine beliebige Operation
  6. SOAP / SOAP-Anfrageparameter ändern / Sicherstellen, dass "Als SOAP+XML (SOAP 1.2) senden" aktiviert ist
  7. SOAP / Anfrage an den Server senden: ich erhalte die Fehler

    HTTP-Fehler: Die Datei '/WcfService7/Service1.svc' konnte auf dem Server 'localhost' nicht gepostet werden (415)

    Fehler beim Senden der Seifendaten an ' http://localhost/WcfService7/Service1.svc HTTP-Fehler: Die Datei '/WcfService7/Service1.svc' konnte auf dem Server '10.51.0.108' nicht gepostet werden (415)

Gibt es Erklärungen? Danke

12voto

Ladislav Mrnka Punkte 355028

Beim Hosten von WCF-Diensten in IIS (unter Verwendung der WCF-Service-Anwendungsprojektvorlage) mit der Standard-.svc-Datei (ohne Änderung der Service-Host-Factory) ist die Standardbindung basicHttpBinding . Wenn Sie die Standardbindung ändern möchten in wsHttpBinding müssen Sie verwenden:

<protocolMapping>
    <add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>

in der Konfigurationsdatei Ihres Dienstes, aber das wird Ihr Problem nicht lösen, denn Sie brauchen nicht wsHttpBinding und soweit ich mich erinnere, ist Altova XmlSpy nicht in der Lage, eine gültige Anfrage für wsHttpBinding weil es nur den SOAP-Stack ohne WS-*-Protokolle unterstützt.

2voto

Shiraz Bhaiji Punkte 62129

Die Standardeinstellung ist basichttpbinding unter Verwendung von SOAP 1.1.

Deshalb erhalten Sie eine Fehlermeldung, wenn Sie es als SOAP 1.2 senden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X