我有一个使用WebHttpBinding的WCF服务。
我使用以下配置:
InstanceContextMode = InstanceContextMode.Single,ConcurrencyMode = ConcurrencyMode.Multiple
我已经将MaxConcurrentCalls限制在20。
我看到的情况如下:如果达到20个的限制,则新的连接/请求将排队。如何才能实现发送“服务忙”之类消息呢?
非常感谢
发布于 2014-02-07 16:11:56
我认为在这种情况下,更好的做法是让客户端推断服务正在忙于请求的超时,而不是服务失败并返回错误代码。
发布于 2011-05-07 01:40:06
“服务繁忙”是WCF无法处理消息的结果。我不知道为什么您更喜欢失败的请求,而不是可能需要更长时间才能成功处理的请求。此外,WCF公开了服务节流参数,但我不相信您可以直接配置内置的WCF队列机制。
即使对于像您所展示的单例配置(maxConcurrentCalls="1“或InstanceContextMode.Single),节流也受到另外两个参数(maxConcurrentSessions和maxConcurrentInstances)的影响,而不仅仅是并发调用。This article has a good overview对这三个参数的影响。通过调整这些设置和可能的超时设置,您可能会强制设置“服务繁忙”条件,如果这确实是您需要的话。
https://stackoverflow.com/questions/5912801
复制相似问题