【问题标题】:WCF Duplex Service - Max Connections / Data TransferWCF 双工服务 - 最大连接数/数据传输
【发布时间】:2013-06-04 09:47:17
【问题描述】:

我正在寻找有关 WCF 双工通信的一些信息以及处理 WCF 和带宽使用时的最佳实践。我先解释一下我的申请...

.. 应用程序本身用于计算机管理。网络上的每台计算机都有一个代理(Windows 服务),并且需要与服务器(运行 WCF Duplex 服务的 Windows 服务)通信。有问题的网络上有大约 6000 台机器,其中大约 75% 的机器随时都在运行,但是应用程序需要能够同时处理所有正在运行的机器并能够处理资产的扩展也是。

代理和服务器之间的对话将受到限制,并且大部分时间只是代理“签入”以使用 PC 名称/IP 地址/登录用户更新服务器。根据服务器上设置的配置详细信息,代理将有一些任务要运行。

我有 2 个真正的问题和一些子问题...

  1. 让 6000 - 7000 个代理连接然后签入服务器是否合理。

    1a。如果是这样,是否有关于这些应该多久“签入”以保持连接正常而不经常签入的建议(WCF 接收/不活动超时默认为 10 分钟,但我不介意增加这个)

  2. 更新代理配置的最佳方法是什么?我有 2 个选项/想法

    2a。当服务器上的配置发生更改时,它会将这些更改推送(回调)给代理 - 我担心泛滥 WAN,有没有一种好方法可以在不泛滥的情况下发送给所有代理。

    2b。代理有一个配置更新时间段,它联系服务器以获取最新的配置详细信息 - 虽然这应该可以阻止泛滥 WAN 的问题(并非所有机器都会在完全相同的时间运行此更新),但这意味着配置即使代理连接到服务器,它也不总是最新的。

我希望这些都是明智的问题,我到处寻找有关 WCF 服务的此类信息,但我找不到任何可以为我指明正确方向的信息。任何信息将不胜感激。

西蒙

【问题讨论】:

    标签: .net wcf bandwidth duplex


    【解决方案1】:

    我也在尝试实现同样的场景。我已经通过以下方法进行了一些研发。

    • 带有 wsDualHttpBinding 的 WCF - 这种方法在本地网络中运行良好,但不能在 Internet 上运行,因为这需要为客户端和服务器提供公共 IP。

    • WCF with web socket with netHttpbinding - 这是通过 Internet 实现双工通信的最佳选择,但不幸的是,这种方法需要客户端和服务器都支持 win 8 或 win 2012。

    • 带有 nettcpbinding 的 WCF - 这对我来说是可行且最佳的方法。我设法让它通过互联网工作,我已经在单独的网络上进行了测试。

    现在我担心的是当成千上万的客户端连接到 WCF 服务时会影响性能。如果有人做过这种开发,非常感谢您的建议。

    【讨论】:

    • 是的,我最终使用了双工 nettcpbinding。我还没有达到我测试了几个 1000 个连接的地步,这将是一个大测试。然而,我决定将数据推送给客户端,而不是让他们每隔一段时间拉取它,这样我就可以更好地控制每条消息发送多少数据。
    • 感谢您的回复,我设法增加使用服务限制 和最大连接属性的客户端数量。我已经测试了以编程方式生成的虚拟客户端(我已经测试了大约 5000 个并且工作正常)
    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 2012-11-22
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多