2009-04-13 14 views
50

Tenía la impresión de que un punto final se definía en un archivo de configuración como la lista de posibles clientes, pero eso no tiene sentido (en el sentido de que supuse que las computadoras podrían conectarse al servicio) ahora estoy recopilando ese es más una definición, así que, ¿alguien podría explicarme cuál es el punto final? Entiendo el concepto de definir la interfaz del contrato y luego implementar el contrato, pero me pierdo en algún lugar entre allí y realmente tengo algo utilizable.¿Qué es un "punto final" en WCF?

¿Qué es una dirección en este contexto? la dirección del host?

¿Un enlace es el método de comunicación/protocolo correcto?

del contrato es el "objeto que está siendo compartida" esencialmente (sí sé que eso es lo que técnicamente incorrecto, pero trabajar conmigo aquí)

Respuesta

70

un punto final es lo que expone un servicio, y en términos WCF, se compone de tres cosas:

  • Dirección
  • Encuadernación
  • Contrato

dirección es la dirección URL que se puede alcanzar el punto final.

La vinculación dicta las transformaciones que se aplican, así como la forma (en cierta medida) de los mensajes enviados a la implementación del Contrato en la Dirección.

El contrato dicta qué operaciones están siendo expuestas en la dirección. Es exactamente lo que dice que es, es un contrato para indicar qué llamadas son permisibles.

mayoría de las veces, la gente lo recuerda como A B C

Algunas cosas a tener en cuenta:

La unión normalmente va a ser una combinación de canales con comportamientos aplicados; canales que son elementos en la pila de canales que modifican el mensaje y realizan acciones antes de llegar a la implementación del servicio.

Aunque comúnmente se representa mediante una interfaz en .NET, no es un requisito que un Contrato se represente de esta manera. Algunos defensores primero de diseño definirán los esquemas de los mensajes que van a enviarse para la solicitud y la respuesta primero, que es a lo que WCF transforma la interfaz de contrato .NET.

+0

Esto es útil ... si quisiera escribir un servicio de comunicación bidireccional, ¿cómo podría hacerlo? supongamos que tengo un sistema con aplicaciones A y B, si A envía 'ping' B espera 1 segundo y devuelve pong, que luego solicita a A esperar 1 segundo y enviar ping nuevamente. – Firoso

+0

@firoso: Es un saludo de tres vías, y en este caso definiría B como el servidor. A llamaría al método Ping en B. Definiría un contrato de devolución de llamada para la operación Ping que expondría a Pong. Entonces, cuando se llame a Pong en A, llamaría nuevamente a Ping en B. – casperOne

+0

Esto tiene sentido, pero creo que voy a necesitar algo de tiempo para absorber más información ... Gracias por la respuesta rápida. – Firoso

3

Ver here: un extremo de servicio especifica una dirección, una unión, y un contrato para usar para comunicarse.

17

Voy a citar de Juval Lowy programación WCF Servicios aquí:

Cada servicio está asociado con una dirección que define donde el servicio es, una unión que define la forma de comunicarse con el servicio, y un contrato que define lo que hace el servicio. Este triunvulo que gobierna el servicio es fácil de recordar como el ABC de el servicio.

WCF formaliza esta relación en la forma de un punto final.El punto final es la fusión de la dirección, el contrato y el enlace.

Todos los puntos finales deben tener los tres elementos, y el host expone el punto final .

5

Un punto final de servicio tiene una dirección, un enlace y un contrato. La dirección del punto final es una dirección de red donde reside el punto final. La clase EndpointAddress representa una dirección de punto final WCF. Endpoint's Binding especifica cómo el Endpoint se comunica con el mundo incluyendo cosas como protocolo de transporte (por ejemplo, TCP, HTTP), codificación (por ejemplo, texto, binario) y requisitos de seguridad (por ejemplo, SSL, seguridad de mensaje SOAP). La clase de enlace representa un enlace WCF. El Contrato de Endpoint especifica qué comunica el Endpoint y es esencialmente una colección de mensajes organizados en operaciones que tienen Patrones de Intercambio de Mensajes básicos (MEP) tales como unidireccional, dúplex y solicitud/respuesta. La clase ContractDescription representa un Contrato WCF.

1

Un punto final de servicio tiene una dirección, un enlace y un contrato. La dirección del punto final es una dirección de red donde reside el punto final. La clase EndpointAddress representa una dirección de punto final WCF. La vinculación del punto final especifica cómo el punto extremo se comunica con el mundo incluyendo cosas como protocolo de transporte (por ejemplo, TCP, HTTP), codificación (por ejemplo, texto, binario) y requisitos de seguridad (por ejemplo, SSL, seguridad de mensaje SOAP). La clase de enlace representa un enlace WCF. El Contrato de Endpoint especifica qué comunica el Endpoint y es esencialmente una colección de mensajes organizados en operaciones que tienen Patrones de Intercambio de Mensajes (MEP) básicos, como unidireccional, dúplex y solicitud/respuesta. La clase ContractDescription representa un Contrato WCF.

12

puntos finales en WCF
WCF Service es un programa que expone una colección de puntos finales. Cada Endpoint es un portal para comunicarse con el mundo. El punto final consta de tres componentes.
1) Dirección:
      define el lugar donde se encuentra un servicio
      ex - http://www.test.com:8001/MyService
2) enlaces:
      Una unión que especifica cómo un cliente puede comunicarse con el punto final
      ex - basicHttpBinding, wsHttpBinding, etc WSDualHttpBinding
3) contratos:
      Un contrato que identifica las operaciones disponibles

puntos finales serán mencionados en el archivo web.config en el servicio creado.

0

Un extremo de servicio Web puede ocultar algunos o todos estos. Y en base a la solicitud puede decidir internamente el procesamiento de la solicitud.

La herramienta SRJTester (disponible en Github) permite especificar puntos finales, acciones, protocolos, etc. al realizar una solicitud de servicio.

Cuestiones relacionadas