Как проверить удаленное соединение (проверить состояние) - PullRequest
4 голосов
/ 13 ноября 2008

У меня есть объект, созданный в главном приложении, и я могу получить к нему удаленный доступ с помощью удаленного взаимодействия, есть ли способ проверить соединение, чтобы убедиться, что оно все еще «живое»? Возможно событие, которое я могу использовать, которое срабатывает, если удаленное соединение отключается, или какое-то свойство, которое может сообщить мне состояние удаленного соединения. Есть что-то подобное?

Ответы [ 2 ]

8 голосов
/ 13 ноября 2008

Я обычно добавляю другой метод к классу MarshallByRef удаленного сервера, (Я обычно называю это Ping (), как в:

 public void Ping() {} 

, который ничего не делает и ничего не возвращает .. Затем, чтобы "проверить" мое соединение, я вызываю этот метод ... Если он вызывает исключение System.Net.Sockets.Exception, я потерял соединение ....

5 голосов
/ 13 ноября 2008

Какую пользу вы будете иметь, чтобы проверить соединение? Даже если вы пингуете это, это не означает, что в следующий момент соединение будет оставаться активным, когда вы сделаете удаленный вызов.

Просто попробуйте / поймайте ваши удаленные вызовы, и вы узнаете.

Этот тип проверок не имеет смысла (сетевое соединение, блокировка файлов и т. Д.). Состояние проверяемой вещи может измениться сразу после проверки. Вы просто подносите лоток и в случае сбоя выполняете очистку / повторную попытку.

...