Compartir a través de


Registro de canales

Este tema es específico de una tecnología heredada que se mantiene para la compatibilidad con versiones anteriores con aplicaciones existentes y no se recomienda para nuevo desarrollo. Las aplicaciones distribuidas se deberían desarrollar utilizando Windows Communication Foundation (WCF).

En el sistema .NET Remoting, los objetos de canal permiten el transporte de los datos cuando un cliente llama un método en un objeto remoto. El servicio remoto podría admitir más de un canal y la aplicación de cliente es responsable de elegir el más apropiado para cumplir sus requisitos. Si no se especifica un canal en el archivo de configuración de cliente y el cliente llama a un método en un objeto remoto, el sistema .NET Remoting cargará una de las implementaciones de canal predeterminadas (HttpChannel o TcpChannel) si alguna de ellas admite el protocolo de red del cliente. No obstante, si el cliente espera alguna función de devolución de llamada o evento, debe especificar un canal de cliente para atender dicha función de devolución de llamada.

Un canal se puede registrar de dos formas: se puede declarar una plantilla de canal y, a continuación, hacer referencia a este canal en la aplicación o bien especificar toda la información del canal directamente en la aplicación. Las plantillas de canal predeterminadas del archivo Machine.config deberían ser suficientes para la mayor parte de aplicaciones y se pueden referenciar desde la etiqueta <channels> (dentro de la etiqueta <application>) mediante el atributo ref de la etiqueta <channel> y especificando "tcp" o "http". No es necesario especificar un atributo port al utilizar un HttpChannel, pero debe indicar uno al utilizar TcpChannel.

Si la aplicación expone un objeto de servidor, debe registrar un canal para que las aplicaciones cliente puedan comunicarse con el objeto. Para ello, puede usar programación con el método ChannelServices.RegisterChannel o registrar el canal en el archivo de configuración.

Si la aplicación consume objetos, debe registrar un canal que sepa cómo llegar a ellos (esto es imprescindible en todos los casos si espera escuchar funciones de devolución de llamada o eventos), a menos que el objeto de servicio utilice uno de los canales de cliente predeterminados incluidos en el archivo de configuración del equipo.

Para obtener ejemplos detallados, vea Ejemplo de interacción remota: proveedor de receptores de canal, el elemento de instancia <channel> y el elemento de plantilla <channel>.

Receptores de canal

Los receptores de canal permiten a los programadores personalizar la serialización y el transporte de mensajes entre el cliente y los servicios remotos. Los proveedores de receptores crean los receptores de canal mientras que los proveedores de receptores de cliente y de servidor se pueden especificar en el archivo de configuración. Los receptores de canal de servidor se invocan al enviar mensajes hacia y desde el servidor y se especifican dentro del elemento <serverProviders>. Los receptores de cliente se invocan al enviar mensajes hacia y desde el cliente y se especifican dentro del elemento <clientProviders>.

Los canales deben tener un receptor de formateador. Los receptores de formateador serializan un mensaje. .NET Framework incluye formateadores para la serialización binaria y SOAP.

Es importante resaltar que una vez que se especifica un formateador personalizado, el sistema .NET Remoting supone que se especificarán todos los canales en el orden deseado. Como resultado, si declara un canal personalizado que utiliza un formateador personalizado, debe especificar también qué otros proveedores desea incluir en la cadena de receptores de canal. No se agregarán receptores de canal predeterminados.

Vea también

Tareas

Cómo crear una plantilla de canal en un archivo de configuración

Referencia

System.Runtime.Remoting.RemotingConfiguration Class

Conceptos

Configuración de aplicaciones remotas
Configuración de objetos remotos

Otros recursos

Registro de objetos remotos mediante archivos de configuración
Información general de servicios remotos de .NET Framework
Información general de servicios remotos de .NET Framework