更改每个WCF方法或呼叫的超时



我有一个很大的"旧" WCF服务,具有许多不同的方法。

这些方法中的大多数都是"正常"的,因此它们应该在不到10秒钟内回答,但是有几种方法(8或9)是很长的过程,因此它们可以花很长时间才能得到响应。

接收到的时间和sendTimeout设置为00:40:00,以确保他们有足够的时间完成这些过程。

问题有时我们有连接问题,"正常"方法需要很长时间才能崩溃...

他们都在同一服务中,因为他们使用了一个非常大的模型,并且想在每个呼叫中重复使用该服务的模型(没有PersoysService.user和robotsservice.user ...因为它们是相同的不同服务中的课程)。

我想象的第一个解决方案是通过这些漫长的过程进行不同的服务,并为正常服务设定了短暂的超时...但是由于模型使用,我应该进行很多更改...

是否有任何方法可以在每个呼叫中设置不同的超时?还是通过服务方法?我还是应该把服务切断吗?

预先感谢!

首先,在您的情况下配置的超时是 OperationTimeout,它允许时间限制等待服务在预时之前回复。您可以在从客户端拨打电话之前修改操作超时

要在频道上设置OperationTimeout,您可以将case/channel实例键入为 IContextChannel并设置OperationTimeout

例如:

IClientChannel contextChannel = channel as IClientChannel;
contextChannel.OperationTimeout = TimeSpan.FromMinutes(10);

hth,Amit

相关内容

  • 没有找到相关文章

最新更新