2009-03-31 25 views

Respuesta

6

Si su servicio WCF expone un punto final mediante basicHttpBinding, entonces debería ser posible para el cliente .NET 2.0 para consumir. Como dijo Marc, "no hay problema".

+0

.NET 2.0 no contiene nada que pueda consumir net.tcp o wsHttp, que no sea WSE, que es una cura peor que la enfermedad. –

+1

ah, es cierto ... WCF vino con .NET 3.0 - ¡sigue olvidándote de eso! –

+0

Entonces, qué tipo de enlace debería usar, por ahora uso wsHttp y parece que no funciona en absoluto – Melursus

2

Sí, por supuesto, el servicio alojado en .NET 3.5 no requiere la misma versión de .NET framework en el cliente. ¡Diablos - incluso puedes llamar a un servicio de Java o PHP! ¡Eso es todo PUNTO de Arquitectura Orientada a Servicios! :-)

Debe definir su contrato de servicio (cómo se llama el servicio, qué métodos están disponibles para ser llamados) y debe decidir cómo alojarlo, p. en qué dirección puede llamar a este servicio, y qué parámetros son necesarios (por ejemplo, HTTP vs. TCP, asegurado o no, etc.): eso es mucho trabajo, incluso en WCF.

Aquí hay tres artículos introductorios para WCF: ¡consúltelos!

Pero llamar a ese servicio desde un cliente .NET 2.0 es absolutamente ningún problema!

Marc

+0

eso no es 100% cierto. Mucho depende del protocolo del servicio web. – Randolpho

+0

sí, por supuesto, los protocolos y configuraciones de seguridad, etc. deben coincidir, pero el hecho de que el cliente sea .NET 2.0 y el servicio es .NET 3.5 NO presenta ningún problema. –

+0

El caso es que las bibliotecas .NET 2.0 no admiten los protocolos predeterminados admitidos por WCF, en muchos casos no existían o no se finalizaron cuando salió .NET 2.0. Entonces, no es "absolutamente ningún problema" en absoluto; es un * gran * problema. – Randolpho

3

Sí, puedes hacerlo. Sin embargo, hay algunas advertencias:

Debe usar protocolos que coincidan. Las bibliotecas .NET 2.0 estándar no admiten muchas características de servicios web seguros; de hecho, está bastante atrapado con el uso de basicHttpBinding en el servicio WCF si desea ser consumido por una instalación predeterminada de .NET 2.0. Esa es una limitación severa en muchos escenarios empresariales. Sin embargo, puede ser todo lo que necesita.

Si necesita más seguridad pero aún utiliza .NET 2.0, existen alternativas. Nuevamente, su servicio WCF debe acomodar su cliente .NET 2.0, pero su cliente .NET 2.0 también necesitará aprovechar una biblioteca externa. Específicamente, necesitará el Web Service Enhancements distribuido por Microsoft. Tenga en cuenta, sin embargo, que estas bibliotecas implementan una versión beta de algunos protocolos SOAP, mientras que WCF (el sucesor de WSE de muchas maneras) implementa los estándares de forma predeterminada. Debido a que hubo algunos cambios importantes en los protocolos (particularmente WS-Addressing), tendrá que ofrecer un punto final customBinding en su servicio WCF para adaptarse.

Lamentablemente, no puedo decirle cuál usará, ya que dependerá del protocolo que desee acomodar en el servicio, pero la mayoría de sus problemas se resolverán cambiando la versión del mensaje de textMessageEncoding por el enlace personalizado. Este no es el mejor escenario, pero podría comprarle algo si está tratando de integrar un cliente.

En pocas palabras, hay una gran cantidad de trabajo para conseguir un cliente .NET 2.0 para hablar con un servicio WCF para otra cosa que basicHttpBinding. En muchos casos, basicHttpBinding puede ser suficiente. Para muchos escenarios empresariales, no lo hará.No puedo hablar de lo que te ayudará o no, pero es posible para que funcione, lo he hecho con éxito.

Pero es un gran dolor. Busque una alternativa si puede.

Cuestiones relacionadas