nachfolger - wcf tutorial




Was ist die Standard-WCF-Bindung? (2)

Der Standard ist das Bashttpbinding mit SOAP 1.1.

Aus diesem Grund erhalten Sie einen Fehler beim Senden als SOAP 1.2.

Ich habe mich ein paar Tage mit diesem Problem herumgeschlagen und dabei viele Dinge auf Bindungen gelernt. Eine Sache verwirrt mich jedoch: verschiedene Links (siehe hier oder das zum Beispiel) sagen explizit "Standardmäßig wird WCF-Projekt mit WsHttpBinding erstellt", aber das ist nicht, was ich sehe. Das ist was ich mache:

  1. Öffnen Sie Visual Studio 2010 und wählen Sie Neues Projekt / Visual C # / WCF-Dienstanwendung
  2. Berühren Sie nichts innerhalb des Codes, legen Sie eine lokale IIS-URL für den Dienst fest (z. B. http: // localhost / WcfService7 )
  3. Öffnen Sie soapUI und wählen Sie File / New Soap UI Project / geben Sie die URL des neu erstellten wsdl: http: //localhost/WcfService7/Service1.svc? Wsdl ein und berühren Sie keine andere Option
  4. Schnittstelleneigenschaften: SOAP-Version = SOAP 1.1, Binding = "BasicHttpBinding_IService1" (obwohl es nur ein Name ist, ist es ein höllischer Hinweis)
  5. Öffnen Sie Altova XmlSpy und wählen Sie SOAP / Neue SOAP-Anforderung erstellen / geben Sie die URL der WSDL ein / wählen Sie eine beliebige Operation aus
  6. SOAP / SOAP Request-Parameter ändern / Sicherstellen, dass "Als SOAP + XML (SOAP 1.2) senden" aktiviert ist
  7. SOAP / Anfrage an Server senden: Ich bekomme die Fehler

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

    Fehler beim Senden der Soap-Daten an den HTTP-Fehler ' http: //localhost/WcfService7/Service1.svc ': Die POST-Datei '/WcfService7/Service1.svc' konnte nicht auf dem Server '10 .51.0.108 'gespeichert werden (415)

Irgendwelche Erklärungen? Vielen Dank


Beim Hosten des WCF-Dienstes in IIS (mithilfe der WCF-Dienstanwendungsprojektvorlage) mit der Standarddatei .svc (ohne Änderung der basicHttpBinding ) lautet die Standardbindung basicHttpBinding . Wenn Sie die Standardbindung an wsHttpBinding ändern wsHttpBinding , müssen Sie wsHttpBinding verwenden:

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

In der Konfigurationsdatei Ihres Dienstes, aber es wird Ihr Problem nicht lösen, da Sie keine wsHttpBinding benötigen und wie ich mich erinnere Altova XmlSpy ist nicht in der Lage, eine gültige Anfrage für wsHttpBinding zu senden, da es nur grundlegende SOAP-Stacks ohne WS-* Protokolle unterstützt.