【发布时间】:2009-04-16 19:38:13
【问题描述】:
我使用 .Net 远程处理在 C# 中编写了一个客户端/服务器模型。如果我将客户端连接到服务器,然后在服务器关闭时终止服务器并重新启动它而不尝试从客户端调用任何服务器方法,我可以愉快地重新连接。
如果我关闭服务器然后尝试从客户端 ping 服务器(我从一个单独的线程执行以避免无休止的等待)然后当服务器重新联机时,客户端将永远无法与它和我的 Ping 线程交谈在停机期间被解雇的那个在远程库的深处永远等待着。我尝试中止此操作(如果尝试加入线程在短时间内失败)但它不会中止。我想知道这是否是问题的一部分。
如果我启动另一个客户端,那么该客户端可以与服务器正常通信。我想我需要重新启动原始客户端的某些方面,但看不到需要关闭的内容。我当然将我连接到的服务器清空并使用相同的地址调用 Activator.GetObject(第二个客户端连接到服务器的操作,这工作正常),但重新获取服务器根本没有帮助。
服务器通过 RegisterWellKnownServiceType 作为单例运行。
【问题讨论】: