【问题标题】:Throttling WCF WebHttpBinding限制 WCF WebHttpBinding
【发布时间】:2011-05-06 14:24:11
【问题描述】:

我有一个使用 WebHttpBinding 的 WCF 服务。

我使用如下配置:

InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple

我已将 MaxConcurrentCalls 限制为 20。

我看到的是以下内容:如果达到 20 的限制,新的连接/请求将排队。我怎样才能实现发送“服务繁忙”消息之类的东西?

非常感谢

【问题讨论】:

    标签: wcf throttling webhttpbinding


    【解决方案1】:

    我认为在这种情况下,最好让客户端推断服务正忙于请求超时,而不是服务因错误代码而失败。

    【讨论】:

      【解决方案2】:

      “服务繁忙”是 WCF 未能处理消息的结果。我不确定为什么您更喜欢失败的请求,而不是可能需要更长时间才能成功处理的请求。此外,WCF 公开了服务节流参数,但我不相信您可以直接配置内置的 WCF 排队机制。

      即使对于您展示的单例配置(maxConcurrentCalls="1" 或 InstanceContextMode.Single),节流也受其他两个参数(maxConcurrentSessions 和 maxConcurrentInstances)的影响,而不仅仅是并发调用。 This article has a good overview 涉及的三个参数的效果。通过调整这些和可能的超时设置,您可能会强制“服务繁忙”条件,如果这确实是您需要的。

      【讨论】:

        猜你喜欢
        • 2014-03-10
        • 2011-07-14
        • 2010-12-03
        • 2011-07-20
        • 2020-05-28
        • 2011-03-15
        • 1970-01-01
        • 1970-01-01
        • 2012-10-02
        相关资源
        最近更新 更多