Compartir a través de


Registro de canal

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 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 puede hacer referencia a ellas desde la etiqueta <channels> (dentro de la etiqueta <application>) mediante el atributo ref de la etiqueta <channel> que debe especificar "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. La llamada a los receptores de canal de servidor se realiza al enviar mensajes hacia y desde el servidor y se especifican dentro del elemento <serverProviders>. La llamada a los receptores de canal de cliente se realiza 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. En el ejemplo siguiente se muestra cómo se crea una plantilla de canal en un archivo de configuración.

<configuration>
   <system.runtime.remoting>
      <application>
      </application>
      <channels>
         <channel 
            id="MyChannel"
            type="MyChannel,MyChannelAssembly"
         >
            <clientProviders> 
               <formatter ref="soap"> 
               </formatter>
               <provider 
                  type="Channels.AuthenticationSink,MyChannels"
               />
            </clientProviders>
         </channel>
      </channels>
   </system.runtime.remoting>
</configuration>

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

Registrar objetos remotos mediante archivos de configuración | System.Runtime.Remoting.RemotingConfiguration (Clase) | Información general de .NET Remoting | Información general de .NET Remoting | Configuración | Configuración de objeto remoto