我有一个在主机应用程序中创建的对象,可以使用远程访问远程访问它,有什么方法可以测试连接以确保它仍然"活着"?如果远程连接断开连接,或者某些可以告诉我远程连接状态的属性,也许我可以使用的事件会触发.有这样的东西吗?
我通常在远程服务器MarshallByRef类中添加另一种方法,(我通常将其命名为Ping(),如下所示:
public void Ping() {}
什么都不做,什么都不返回..然后"测试"我的连接,我调用这个方法...如果它抛出一个System.Net.Sockets.Exception,我已经失去了连接....
您有什么好处来检查连接?即使您对它进行ping操作,也不意味着在您拨打远程呼叫时,下一刻连接仍然存在.
只需尝试/抓住你远程通话,你就会知道.
这种类型的检查毫无意义(网络连接,文件锁定等).由于你检查的东西的状态可以在检查后立即改变.您只需托盘,如果失败则清理/重试.