gpt4 book ai didi

WCF:Close() 真的关闭连接吗?

转载 作者:行者123 更新时间:2023-12-04 19:26:17 31 4
gpt4 key购买 nike

我们在 WCF 服务方面存在一些问题,我正在做一些测试:
我刚刚使用 创建了新的 WCF 客户端和服务默认设置 并监控它在 TCP 级别上的工作方式。我使用 .net 4.0 和 net.tcp 捆绑

我所看到的:使用语句关闭后 WCF 并没有真正关闭与服务器的连接......
在 TCP 级别它应该发送 [FIN] 包到服务器,但它什么都不做,只是等待和 在 2 分钟内服务器终止连接 带有 [RST] 包。我附上了一些来自wireshark的截图

我相信这就是 wcf 的工作方式,但我无法找到一些信息来确认它。
我还注意到,如果在关闭 using 语句后,我打开新的 using 语句,它使用相同的端口在客户端进行通信...(客户端上的端口共享为 false)

我的问题:

  • 为什么 WCF 在使用语句后不关闭与服务器的连接是
    关闭?
  • 我该怎么做才能使其正确关闭连接(发送 [FIN] 语句)?

  • 谢谢。
    附言我没有附加任何配置,因为它是 VS2010 为我创建的默认值。

    wcf communication on tcp level

    最佳答案

    在这里猜测,但 netTcpBinding 确实实现了 a connection cache . WCF 将“挂起”到 TCP 连接,直到某些内部参数/逻辑决定它可以被释放。这是 Dispose 方法可以“按设计”抛出异常的原因之一。

    {我的 2 美分:无论 WCF 设计师如何为自己合理化这个决定,在现实世界中,这样做是一件非常危险的事情。}

    关于WCF:Close() 真的关闭连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068211/

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