Проверить, действителен ли удаленный прокси? - PullRequest
1 голос
/ 17 декабря 2010

Я использую удаленное взаимодействие между клиентом и сервером, и пока оно работает, я вижу некоторое поведение, которое не понимаю.

Я настраиваю свой сервер следующим образом:

        BinaryServerFormatterSinkProvider serverProv = new BinaryServerFormatterSinkProvider();
        serverProv.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;            
        BinaryClientFormatterSinkProvider clientProv = new BinaryClientFormatterSinkProvider();

        IDictionary props = new Hashtable();
        props["name"] = "MarsLogServer.rem";
        props["port"] = Properties.Settings.Default.ListeningPort;
        props["useIpAddress"] = false;

        server = new LogServer();

        chan = new TcpChannel(props, clientProv, serverProv);
        ChannelServices.RegisterChannel(chan, true);            
        RemotingConfiguration.RegisterWellKnownServiceType(typeof(LogServer), "MarsLogServer.rem", WellKnownObjectMode.Singleton);            

И мой клиент подключается следующим образом:

this.logServer = (ILogServer)Activator.GetObject(typeof(ILogServer), connectForm.Url);
this.logServer.AttachClient(this, connectForm.SessionKey)

Что происходит, у меня даже не работает сервер, но мой вызов AttachClient () на прокси, который получает мой клиент, завершается успешно. Я не понимаю, почему это так, что не существует процесса, выполняющего размещение объекта по предоставленному URL (если кто-то не подшучивает над мной), так почему бы не вызвать исключение?

В идеале я бы хотел, чтобы вызов не состоялся, или я хотел бы каким-то образом проверить, что мой прокси-сервер действителен, прежде чем разрешить моему клиенту продолжить. Как сейчас, нет способа узнать, было ли соединение успешным или нет.

1 Ответ

0 голосов
/ 17 декабря 2010

Может быть, вы можете использовать System.Runtime.Remoting.RemotingServices.IsTransparentProxy (клиент), чтобы проверить, установлена ​​ли цепочка TransparentProxy / RealProxy?

-Oisin

...