Me han dicho que wsHttpBinding no es compatible con clientes antiguos que todavía necesitan usar una versión anterior de SOAP. Deseo agregar un punto final BasicHttpBinding en la misma aplicación de servicio WCF para que los clientes puedan usar cualquiera de los puntos finales dependiendo de la tecnología que estén ejecutando. Estoy confundido en cuanto a qué dirección usar para cada uno de ellos. El wsHttpBinding predeterminado no tiene un conjunto de direcciones. ¿Cuál debería ser la dirección para el punto final BasicHttpBinding? ¿La dirección del wsHttpBinding no debería ser (para mi ejemplo) http://localhost/WcfService1/Service1.svc?WCF wsHttpBinding y BasicHttpBinding en la misma aplicación de servicio WCF
Respuesta
Hay dos cosas que hay que considerar aquí:
si su hosting en IIS (o WAS como parte de IIS7), no puede establecer una dirección base: la dirección base para su servicio será el directorio virtual donde vive el archivo
MyService.svc
. Todavía puede establecer direcciones relativas, aunquesi autohospeda, normalmente agregará direcciones base en su configuración, por lo que puede ahorrarse el tener que deletrear toda la dirección todo el tiempo (pero puede - si deseas hacerlo).
Así que si usted tiene su MyService.svc
dentro de un directorio virtual llamado MyApp
en su máquina localhost
, y luego usar esta configuración:
<service name="MyService" behaviorConfiguration="Default">
<endpoint
address="wsHttp"
binding="wsHttpBinding"
contract="IMyService" />
<endpoint
address="basic"
binding="basicHttpBinding"
contract="IMyService" />
</service>
entonces su servicio basicHttp "viejo estilo" será accesible al :
http://localhost/MyApp/MyService.svc/basic
y su nuevo wsHttp impulsado servicio será accesible en:
http://localhost/MyApp/MyService.svc/wsHttp
Puede nombrar esas direcciones relativas (cualquier cosa después de .../MyApp/MyService.svc
) lo que quiera, simplemente asegúrese de que sean diferentes entre sí.
Alojamiento en IIS -> ubicación (directorio virtual) de su archivo * .svc se convierte en su dirección base.
Si la auto-anfitrión su servicio dentro de una aplicación de consola o de un servicio de Windows NT, se llega a establecer su base se dirige a sí mismo:
<services>
<service name="MyService" behaviorConfiguration="Default">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8185/Services/" />
</baseAddresses>
</host>
</service>
</services>
Ahora bien, en este caso, su servicio basicHttp "viejo estilo" será accesible en:
http://localhost:8185/Services/basic
y su servicio impulsado nueva wsHttp será accesible en:
http://localhost:8185/Services/wsHttp
Puede definir una dirección base para cada uno de los transportes, p. Ej. uno para http: //, uno para net.tcp: // y así sucesivamente.
Y, por supuesto, si realmente debe, también puede definir sus direcciones completas dentro de su elemento <endpoint>
para cada uno de los puntos finales del servicio; esto le da flexibilidad total (pero solo funciona en escenarios de autohospedaje).
Marc
En WCF tiene una dirección base y una dirección Enpoint, en su caso, usted puede hacer algo como esto:
<service name="WcfEndpoints.Service1" behaviorConfiguration="WcfEndpoints.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="new" binding="wsHttpBinding" contract="WcfEndpoints.IService1" />
<endpoint address="old" binding="basicHttpBinding" contract="WcfEndpoints.IService1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
en cuenta que tendrá un trabajo adicional para el punto final basicHttpBinding trabajar con más edad (asmx) clientes
- 1. BasichttpBinding vs WSHttpBinding de WCF
- 2. basicHttpBinding vs wsHttpBinding
- 3. WCF & Java Interop utilizando WSHttpBinding,
- 4. ¿Wcf basicHttpBinding admite PerSession?
- 5. BasicHttpBinding vs vs wsHttpBinding WebHttpBinding
- 6. Consumir un WCF WsHttpBinding WebService en Java
- 7. WCF service maxReceivedMessageSize basicHttpBinding issue
- 8. WCF Mono - BasicHttpBinding con SSL
- 9. Pasar credenciales de un servicio wcf a otro servicio wcf
- 10. wsHttpBinding WCF y deshabilitar el acceso anónimo
- 11. WCF wsHttpBinding con http keepalive
- 12. WCF REST Servicio no visible en WCFTestClient
- 13. Sesiones WCF con un wsHttpBinding y sin seguridad de Windows
- 14. ¿Puede hacer una llamada jQuery al servicio WCF utilizando SOAP y WSHttpBinding?
- 15. Servicio Msmq y WCF
- 16. Servicio WCF con la aplicación asp.net mvc
- 17. WCF Seguridad en un servicio de Windows
- 18. Cómo habilitar la sesión con SSL wsHttpBinding en WCF
- 19. Servicio WCF alojado de IIS + autenticación de Windows en IIS + TransportCredentialOnly/autenticación de Windows en basicHttpBinding
- 20. ¿Cuál es la diferencia entre una aplicación de servicio WCF y una biblioteca de servicios WCF?
- 21. ¿Cómo puedo usar WCF con solo basichttpbinding, SSL y Autenticación básica en IIS?
- 22. Tamaño del búfer en el servicio WCF
- 23. Transferir gran cantidad de datos en el servicio WCF
- 24. Servicio WCF REST y SOAP sin WebServiceHostFactory
- 25. Error de servicio demasiado ocupado en WCF
- 26. RESTO Servicio WCF y sesión en ASP.NET
- 27. servicio WCF con Qt?
- 28. Tiempo de espera del servicio WCF
- 29. WCF and Kerberos Authentication
- 30. Exponer punto final webHttpBinding en un servicio WCF
¿Es posible tener su punto de wsHttp punto final en el directorio raíz y luego tener la dirección del punto extremo basicHttp para erradicar \ básica? – EbbnFlow