gpt4 book ai didi

c# - WCF NetTcpBinding 是否提供持久连接?

转载 作者:太空狗 更新时间:2023-10-29 20:21:08 28 4
gpt4 key购买 nike

使用 WCF 制作客户端/服务器样式的应用程序,但我找不到任何说明 NetTcpBinding 是否提供持久连接的文档?

我希望我的客户端一次连接并与服务器保持连接数周。 (是的,我知道我需要处理断开连接等问题。)

NetTcpBinding 是否允许像这样的长连接?如果是这样,我需要指定什么或者这是默认行为吗?

最佳答案

只要您保持服务主机和客户端代理处于事件状态并处于打开状态,WCF 中的基础连接也应该保持打开状态。即使在这之下,绑定(bind)似乎也使用来自 TCP 连接池的连接,如 NetTcpBinding MSDN page 中所见。 :

The NetTcpBinding uses TCP connection pooling based on the service’s host DNS name and the port number the service is listening on.

我不是 TCP 连接池如何工作的专家,您可能想尝试姐妹网站,例如 ServerFault有关此的更多详细信息。

如果你想控制所有这些,那么我能看到的唯一可以为开箱即用的 NetTcpBinding 调整的属性是 MaxConnections .但是,如果您真的愿意深入研究,您也可以使用 TcpTransportBindingElement 构建您自己的自定义绑定(bind)。 ,这使您可以对 TcpConnectionPoolSettings 进行更细粒度的控制.

无论如何,如果我大胆猜测,我会认为构建服务主机和客户端代理所花费的时间(相对)比从池中获取连接所花费的时间要多得多,因此保持这两个打开可能足以满足您的要求。

我在评论中询问为什么您希望连接保持打开状态的原因是因为这本身很难成为要求。速度和响应时间 是一个真正的要求,所以最好的建议可能是明确这些要求(量化/限定您对速度的需求)并运行一些测试以确定最适合您的情况/需要什么.

关于c# - WCF NetTcpBinding 是否提供持久连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982026/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com