我有一个简单的客户端服务器应用程序使用WCF(netTcpBinding)当我启动服务器并通过客户端发送消息时,每件事都可以正常工作,但是当我手动关闭服务器并再次打开它时(不关闭客户端应用程序)下次客户端尝试向服务器发送消息时,我得到此异常(在客户端):
套接字连接已中止。这可能是由错误处理y引起的 我们的消息或远程主机超出接收超时,或者是下划线 ying网络资源问题。本地套接字超时为'00:00:59.9843903'。
如果我使用basicHttpBinding,则不会出现问题。
任何人都知道为什么会出现这个问题??? 谢谢, 丽然
答案 0 :(得分:5)
这是预期的行为。关闭服务器时,服务器上的TCP连接已关闭,您无法再从客户端调用它。再次启动服务器无济于事。您必须在客户端上捕获异常,Abort current proxy并创建并打开新的。
使用BasicHttpBinding它可以工作,因为NetTcpBinding在代理的整个生命周期中使用单个通道(通道绑定到TCP连接),而BasicHttpBinding为每个调用创建一个新通道(它重用现有HTTP连接或创建新连接,如果连接不存在)。