net remoting
От: viktorn  
Дата: 07.08.08 04:35
Оценка:
1.Если регистрируешь на сервере tcp канал:

TcpChannel chan = new TcpChannel(4000);
ChannelServices.RegisterChannel(chan);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Server.ServerEvent),
"event", WellKnownObjectMode.Singleton);

то,при подключении события сервера ,при запуске клиента, генирится исключение SecurityException и сообщение,что объект типа
System.DelegateSerializationHolder и все производные от него типы не могут быть десериализованы на этом уровне
безопасности.


2.Если регистрируешь на сервере tcp канал таким образом
Hashtable property = new Hashtable();
property["port"] = 4000;
BinaryServerFormatterSinkProvider sinkSrv = new BinaryServerFormatterSinkProvider();
sinkSrv.TypeFilterLevel = TypeFilterLevel.Full;
TcpChannel chan = new TcpChannel(property, new BinaryClientFormatterSinkProvider(),
sinkSrv);
ChannelServices.RegisterChannel(chan);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Server.ServerEvent),
"event", WellKnownObjectMode.Singleton);
то на клиенте во время исполнения при подключении серверного события :

IEvent.IEvent srv = (IEvent.IEvent)Activator.GetObject(typeof(IEvent.IEvent), "tcp://localhost:4000/event");
srv.EventAct += new IEvent.ActivEventHandler(srv_EventAct);

генерится исключение:

TargetInvocationException was unhandled
Exception has been thrown by the target of an invocation.

Подскажите,как правильно сконфигурировать клиента , сервер и его события,для последущего приема их клиентом,при
этом чтобы клиент получал ссылку на удаленный объект с помощью Activator.GetObject(....) и взаимодействовал
с сервером через интерфейс.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.