wcf - 套接字连接被中止 - WCF

标签 wcf nettcpbinding

我有一个简单的客户端服务器应用程序,当我启动服务器并通过客户端发送消息时,它使用 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/

相关文章:

c# - WCF 服务无端点

wcf - 使用 TransportWithMessageCredential 时,受信任的人商店是否需要客户端证书

c# - WCF - 禁用 nettcpbinding 中的安全性 (c#)

c# - 使 wsHttpBinding 替代 netTcpBinding 的场景是什么

WCF over TCP,具有用户名身份验证且无证书

wcf - 已超出传入消息的最大消息大小配额(明显修复无济于事)

.net - 如何找到 NetTcpBinding (WCF) 可用的 TCP 端口(以便服务器可以绑定(bind)到它)

wcf - 参数中带有保留字的 F# SOAP 客户端

c# - 从 wcf 服务中的类继承

WCF 与 3.5 和 4.0 一起