Hola a todos:
Tengo el siguiente problema, al querer suscribir un evento en forma
remota me aparece el siguiente mensaje:
An unhandled exception of type
'System.Runtime.Serialization.SerializationException' occurred in
mscorlib.dll
Additional information: Cannot find the assembly WinCliente,
Version=1.0.1327.20096, Culture=neutral, PublicKeyToken=null.
A continuación muestro como tengo armado el servidor, el cliente y el objeto
que instancio remotamente, si alguien tiene un poco mas de experiencia en
este tema agradecería su consejo, desde ya muchas gracias
Diego
Cliente
BinaryServerFormatterSinkProvider Provider = new
BinaryServerFormatterSinkProvider();
Provider.TypeFilterLevel System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
BinaryClientFormatterSinkProvider clientProv = new
BinaryClientFormatterSinkProvider();
IDictionary props = new Hashtable();
props["port"] = 0;
TcpChannel chan = new TcpChannel(props, clientProv, Provider);
ChannelServices.RegisterChannel(chan);
HelloServer obj (HelloServer)Activator.GetObject(typeof(RemotingSamples.HelloServer)
,"
tcp://localhost:123/SayHello");
if (obj == null)
{
label1.Text="Todo mal";
}
else
{
label1.Text=obj.HelloMethod("Diego");
};
obj.Cambio += new
RemotingSamples.HelloServer.CambioEventHandler(this.message);
///aqui se dispara el mensaje
Objeto
public class HelloServer : MarshalByRefObject
{
public delegate void CambioEventHandler();
public event CambioEventHandler Cambio;
public HelloServer()
{
Console.WriteLine("HelloServer activated");
}
public String HelloMethod(String name)
{
Console.WriteLine("Hello.HelloMethod : {0}", name);
return "Hi there " + name;
}
Servidor
BinaryServerFormatterSinkProvider Provider = new
BinaryServerFormatterSinkProvider();
Provider.TypeFilterLevel System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
BinaryClientFormatterSinkProvider clientProv = new
BinaryClientFormatterSinkProvider();
IDictionary props = new Hashtable();
props["port"] = 123;
TcpChannel chan=new TcpChannel(props, clientProv, Provider);
ChannelServices.RegisterChannel(chan);
RemotingSamples.HelloServer hola = new RemotingSamples.HelloServer();
RemotingConfiguration.RegisterWellKnownServiceType
(hola.GetType(),"SayHello", WellKnownObjectMode.SingleCall);
System.Console.WriteLine("Hit <enter> to exit...");
System.Console.ReadLine();
ChannelServices.UnregisterChannel(chan);
return 0;
DIEGO ANDRES MOLINA
DIPROS S.A.
diego.molina@dipros.com
www.dipros.com
Vicente Gil 582 - Mendoza - Argentina
tel.: 0261-4200051
Leer las respuestas