WCF强制服务超时和限制

时间:2012-11-22 12:40:07

标签: .net wcf throttling

我有一个需要很长时间才能运行的WCF服务方法。为了便于说明,假设有时需要0.5秒,而另一次需要5秒。处理每个请求的时间从0.5秒到5秒不等。有一种业务条件表明,如果服务无法在2秒内处理请求,客户端会将其视为失败,并考虑将请求发送到另一台服务器。

假设该服务获得10个并发请求,其中4个成功,因为服务设法在不到2秒的时间内执行它们,其余6个失败。我面临的问题是剩下的6个正在做一些客户端不会消耗的东西。由于此6请求消耗服务器资源,因此新的传入请求会延迟。加班你看到越来越多的请求被认为是失败的原因只是因为WCF将一旦处理后没有人会要求的请求排队。

如果无法在收到请求后的3秒内执行web方法/请求,我如何指示WCF限制/超时终止当前请求。这不应该是客户端设置。我想指示服务,例如“如果你不能在4秒内忘记它并停止服务该请求,因为没有人会使用你的最终结果”。

我玩过ServiceThrottlingBehavior和(CloseTimeout,OpenTimeout,SendTimeout,ReceiveTimeout)但没有任何帮助告诉服务在一定时间后停止处理。

0 个答案:

没有答案