我有一个简单的客户端服务器应用程序,当我启动服务器并通过客户端发送消息时,它使用 WCF(netTcpBinding),一切正常,但是当我手动关闭服务器并再次打开它时(不关闭服务器)客户端应用程序)下次客户端尝试向服务器发送消息时,我会收到此异常(在客户端):
套接字连接被中止。这可能是由于处理 y 时出错造成的 我们的消息或远程主机超出了接收超时,或者是一个underl ying网络资源问题。本地套接字超时为“00:00:59.9843903”。
如果我使用 basicHttpBinding 则不会出现问题。
有人知道为什么会出现这个问题吗??? 谢谢, 丽然
最佳答案
这是预期的行为。当您关闭服务器时,服务器上的 TCP 连接将关闭,您无法再从客户端调用它。再次启动服务器也无济于事。您必须在客户端捕获异常,中止当前代理并创建并打开新代理。
使用BasicHttpBinding它可以工作,因为NetTcpBinding在代理的整个生命周期中使用单个 channel ( channel 绑定(bind)到TCP连接),而BasicHttpBinding为每个调用创建一个新的 channel (它重用现有的HTTP连接,或者如果连接不存在则创建新的 channel )存在)。
关于wcf - 套接字连接被中止 - WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652278/