【发布时间】:2008-11-13 17:08:16
【问题描述】:
我在主机应用程序中创建了一个对象,并且可以使用远程处理远程访问它,有什么方法可以测试连接以确保它仍然“活动”?如果远程连接断开连接,或者某些属性可以告诉我远程连接的状态,我可以使用它触发的事件。有这样的东西吗?
【问题讨论】:
我在主机应用程序中创建了一个对象,并且可以使用远程处理远程访问它,有什么方法可以测试连接以确保它仍然“活动”?如果远程连接断开连接,或者某些属性可以告诉我远程连接的状态,我可以使用它触发的事件。有这样的东西吗?
【问题讨论】:
我通常在远程服务器 MarshallByRef 类中添加另一个方法, (我一般将其命名为 Ping(),如:
public void Ping() {}
什么都不做,什么也不返回。然后为了“测试”我的连接,我调用这个方法......如果它抛出 System.Net.Sockets.Exception,我已经失去了连接......
【讨论】:
检查连接有什么好处?即使你 ping 了它,也并不意味着在下一刻你进行远程调用时连接仍然存在。
只需尝试/接听您的远程呼叫,您就会知道。
这种类型的检查是没有意义的(网络连接、文件锁定等)。因为您检查的事物的状态可以在检查后立即更改。您只需托盘,如果失败则清理/重试。
【讨论】: