我有一个 WCF 服务正在监听 Azure 服务总线中继,由于我无法更改的原因,我在 Windows 服务中自行托管。
一旦服务处于并发负载下 - 通常通过给它一系列长时间运行的请求 - 我们开始从 Azure 服务总线接收以下消息:
<Error>
<Code>502</Code>
<Detail>Bad Gateway.TrackingId:f0e32d08-2721-464c-a108-fe63f1efc443_G23,TimeStamp:4/23/2013 8:22:18 AM</Detail>
</Error>
我们怀疑并发负载会导致这个问题。
我的服务是完全无状态的。
ServiceHost = a WebServiceHost which we instantiate ourselves.
Binding = BasicHttpRelayBinding
InstanceContextMode = Single
ConcurrencyMode = Multiple
SessionMode = NotAllowed
ServiceThrottlingBehaviour.MaxConcurrentConnections = A very large number
Transport = Streaming
我有四个问题:
- 上述错误看起来像是并发负载问题吗?
- 我应该考虑哪些其他配置选项来提供更大的规模。
- 在自托管的 Window Service 环境中,当达到并发连接限制时会发生什么?服务会失败吗?连接会排队吗?
- 有没有一种方法可以在任何给定时刻可靠地监控并发连接数。