habilitar - ¿Cuál es el enlace predeterminado de WCF?
configurar web.config wcf (2)
He estado luchando durante unos días con este problema , aprendiendo muchas cosas sobre enlaces en el proceso. Una cosa me desconcierta: varios enlaces (vea esto o aquello, por ejemplo) explícitamente dicen "Por defecto, el proyecto WCF se crea utilizando WsHttpBinding", pero eso no es lo que veo. Esto es lo que hago:
- Abra Visual Studio 2010 y elija la aplicación de servicio New Project / Visual C # / WCF
- No toque nada dentro del código, establezca una URL local de IIS para el servicio (digamos http: // localhost / WcfService7 )
- Abra soapUI y elija Archivo / Nuevo proyecto UI de Soap / ingrese la url del wsdl recientemente creado: http: //localhost/WcfService7/Service1.svc? Wsdl , sin tocar ninguna otra opción
- Propiedades de interfaz: SOAP Version = SOAP 1.1, Binding = "BasicHttpBinding_IService1" (aunque es solo un nombre, es una pista)
- Abra Altova XmlSpy y elija SOAP / Crear nueva solicitud SOAP / ingrese la url de la wsdl / select any operation
- SOAP / Cambiar parámetros de solicitud SOAP / Asegúrese de que "Enviar como SOAP + XML (SOAP 1.2)" esté marcado
SOAP / Enviar solicitud al servidor: obtengo los errores
Error de HTTP: no se pudo POSTAR el archivo ''/ WcfService7/Service1.svc'' en el servidor ''localhost'' (415)
Error al enviar los datos de soap a '' http: //localhost/WcfService7/Service1.svc '' Error de HTTP: no se pudo POSTAR el archivo ''/WcfService7/Service1.svc'' en el servidor ''10 .51.0.108 ''(415)
Alguna explicacion? Gracias
El valor predeterminado es basichttpbinding usando SOAP 1.1.
Es por eso que recibe un error al enviarlo como SOAP 1.2.
Al hospedar el servicio WCF en IIS (utilizando la plantilla de proyecto de la aplicación de servicio WCF) con el archivo .svc predeterminado (sin cambiar la fábrica del host de servicio), el enlace predeterminado es basicHttpBinding
. Si desea cambiar el enlace predeterminado a wsHttpBinding
, debe usar:
<protocolMapping>
<add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>
En el archivo de configuración de su servicio, pero no resolverá su problema porque no necesita wsHttpBinding
y, como recuerdo, Altova XmlSpy no puede enviar solicitudes válidas para wsHttpBinding
porque solo admite la pila SOAP básica sin protocolos WS- *.