Remoting & events
От: Аноним  
Дата: 03.10.06 11:07
Оценка:
Фреймворк 1.1

Два приложения winforms. Связываются через интерфейс, определенный в отдельной сборке, на которую оба имеют референс. Клиент вызывает методы сервера без проблем. Но в момент подписки на событие сервера (+=) получаем такую ошибку:

An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in mscorlib.dll
Additional information: Cannot find the assembly ClientTestUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

где ClientTestUI — это имя сборки клиента (ехе-шника).

В событии передается 1 ArrayList, никаких кастом типов.
Клиент и сервер находятся в разных каталогах.
Ремоутинг конфигурируется в коде.

Сервер:

BinaryServerFormatterSinkProvider serverProv = new BinaryServerFormatterSinkProvider();
serverProv.TypeFilterLevel = TypeFilterLevel.Full;
BinaryClientFormatterSinkProvider clientProv = new BinaryClientFormatterSinkProvider();
IDictionary props = new Hashtable();
props["port"] = 32000;
TcpChannel channel = new TcpChannel(props, clientProv, serverProv);        
ChannelServices.RegisterChannel(channel);

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


Клиент:

BinaryServerFormatterSinkProvider serverProv = new BinaryServerFormatterSinkProvider();
serverProv.TypeFilterLevel = TypeFilterLevel.Full;
BinaryClientFormatterSinkProvider clientProv = new BinaryClientFormatterSinkProvider();
IDictionary props = new Hashtable();
props["port"] = 0;
TcpChannel channel = new TcpChannel(props, clientProv, serverProv);        
ChannelServices.RegisterChannel(channel);
        
_server = (IRemoteServer) Activator.GetObject(typeof (IRenoteServer), "tcp://localhost:32000/Server");
_server.OnUpdate += new UpdateEventHandler(Server_Update); // вот тут мы и валимся


Как это дело бороть?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.