限制WCF WebHttpBinding

时间:2011-05-06 14:24:12

标签: wcf throttling webhttpbinding

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

我使用以下配置:

InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple

我将MaxConcurrentCalls限制为20。

我看到如下:如果达到20的限制,则新的连接/请求排队。我怎样才能实现像“服务忙”这样的消息呢?

非常感谢

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

“服务忙”是WCF无法处理消息的结果。我不确定为什么你更希望失败的请求超过一个可能需要更长时间才能成功处理的请求。此外,WCF公开服务限制参数,但我不相信您可以直接配置内置WCF排队机制。

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