domingo, 29 de junio de 2008

Remoting.Configuration Class

Obtenemos acceso a esta clase cuando seteamos una referencia a System.Runtime.Remoting. mediante esta clase tenemos acceso a configuración mediante programación .A continuación se muestran un par de ejemplos de lo que nos permite configurar esta clase.

Estas son algunas de las propiedades:

  • ApplicationID : Obtenemos el ID de la aplicación actual que se esta ejecutando
  • ApplicationName : Obtenemos o seteamos el nombre de la aplicación
  • CustomErrorsMode : Obtenemos o seteamos un valor que indica como van a ser manejados los errores .Puede ser On ,Off,o remote Orly.
  • ProcessID : Obtiene el Id del actual proceso que se esta ejecutando

Especificando el nombre de un Server Application :
RemotingConfiguration.ApplicationName = "MyRemotingObject";


Registrando el Objeto Remoto :

La clase RemotingConfiguration nos da varios métodos para poder registrar nuestros objetos .A continuación se mencionan algunos.

  • RegisterActivatedClientType : Registra el objeto en el cliente que se va a activar en el cliente.
  • RegisterActivatedServiceType : Registra el objeto en el servicio y puede ser activado desde el cliente.
  • RegisterWellKnowClientType : Registra un single-call o Singleton object en el cliente
  • RegisterWellKnowServiceType : Registra un single-call o Singleton object en el service

Ejemplo registrando un Service-Activated del tipo Singleton :

RemotingConfiguration.RegisterWellKnownServiceType(typeof(Server.MyRemoteClass), "MyRemotingObject", WellKnownObjectMode.Singleton);

Ejemplo registrando client-Activated :

RemotingConfiguration.RegisterActivatedServiceType(typeof(Server.MyRemoteClass));


Configurando la Version :


Usando la propiedad TypeName podemos especificar la version del assembly de los remote Objects,en el caso de no especificarlo se toma la ultima versión publicada.

Ejemplo :

RemotingConfiguration.RegisterWellKnownServiceType(typeof(Server.MyRemoteClass,Version=1.0.0.0), "MyRemotingObject", WellKnownObjectMode.Singleton);

Registrando un Canal de Comunicacion :

Estos son usados para procesar mensajes que son enviados entre los objetos remotos.La clase ChannelService es usada para acceder a el metodo RegisterChannel,que registra un canal con channel services.A continuacion un par de reglas basicas para aplicar con channel services:

  • Una aplicación Hosting puede registrar uno o más canales, pero un canal puede solamente ser registrado en el mismo puerto.
  • Dos canales en la mismo application domain no pueden ser registrados con el mismo nombre.
  • Por default el canal HTTP es llamado http y lo mismo con TCP , en el caso de querer registrar dos canales con el mismo nombre ,debemos setear el nombre de la segunda stancia con la propiedad ChannelName


Ejemplo registrando un canal tcp :

//Registro TCP Chanel
IChannel tcpChannel = new TcpChannel(8005);
ChannelServices.RegisterChannel(tcpChannel, false);

No hay comentarios: