WCF y Soap 1.1

Estoy tratando de crear un servicio que una 3 ª parte que consume.

El consumidor es compatible con SOAP 1.1, que es la razón por la que estoy usando basicHttpBinding para el servidor. Cuando el real se hizo la petición, algo parece ir mal con los tipos de contenido esperado por el servidor. El uso de basicHttpBinding yo no se por qué el servidor espera que ‘application/soap+xml’, que, a mi conocimiento, sólo es necesario por SOAP 1.2.

He usado wireshark para averiguar exactamente lo que aquellos dos eran la comunicación acerca de. Ver flujo tcp y el programa de instalación a continuación.

Cualquier ayuda es muy apreciada.

La 3ª parte de la aplicación de solicitud de

POST /HTTP/1.1

SOAPAction:
http://tempuri.org/ITestService/Hello

Content-Type: text/xml; charset=utf-8

Host: shdesktop:8000

Content-Length: 297

Esperar: 100-continuar

Connection: Close

WCF respuesta del Servidor

HTTP/1.1 415 No puede procesar la
mensaje debido a que el tipo de contenido
‘text/xml; charset=utf-8’ no era el
el tipo esperado ‘application/soap+xml;
charset=utf-8’.

Content-Length: 0

Server: Microsoft-HTTPAPI/2.0

Fecha: Tue, 09 Feb 2010 14:03:19 GMT

Connection: close

De configuración del servicio de

<system.serviceModel>
    <services>
      <service behaviorConfiguration="behTestService" name="ConsoleApplication1.TestService">
        <endpoint address="" binding="mexHttpBinding" contract="IMetadataExchange" />
        <endpoint address="TestService" binding="basicHttpBinding"
            contract="ConsoleApplication1.ITestService" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="behTestService">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
InformationsquelleAutor Silas Hansen | 2010-02-09

2 Kommentare

  1. 19

    La basicHttpBinding hace uso de SOAP 1.1 – pero en ese caso, habría un tipo de contenido de application/soap+xml.

    Ya que su cliente está enviando text/xml – cualquier oportunidad que está esperando un interfaz REST? Este sería manejado por la WCF webHttpBinding.

    Leer más sobre el DESCANSO en WCF en el MSDN WCF RESTO del Centro de desarrollo de y salida de Pluralsight screencast de la serie en WCF REST – muy recomendable!

    • oh, SOAP 1.1 utilizaría ‘application/soap+xml’? Voy a probar el webHttpBinding mañana, gracias! Sé que es un hecho que funciona cuando puedo crear un simple servicio asmx, si hace alguna diferencia.
    • ASP.NET webservices (ASMX) y WCF basicHttpBinding uso de SOAP 1.1 – así que debería estar bien, de verdad. Usted necesita para comprobar si el cliente está enviando una solicitud SOAP, o simplemente tratando de enviar un XML a su URL
    • Me estaba llamando http://<nombre de host> en lugar de eso para llamar http://<nombre de host>/TestService. Error estúpido por mí. Gracias por toda la ayuda, aunque!
  2. 7

    En general, cuando recibimos un mensaje /mensaje de error en un servicio web que incluye el texto:

    content type 'text/xml'

    Significa que el servidor web devuelve una página de error en lugar de la esperada respuesta xml.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea