首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改每个WCF方法或调用的超时

更改每个WCF方法或调用的超时
EN

Stack Overflow用户
提问于 2012-10-18 20:28:41
回答 1查看 5.9K关注 0票数 6

我有一个相当大的“老”的WCF服务,有许多不同的方法。

这些方法中的大多数都是“正常”的,所以它们应该在10秒内回答,但也有几种方法(8或9)需要很长的过程,所以它们可能需要很长时间才能得到响应。

接收超时和发送超时设置为00:40:00,以确保它们有足够的时间完成这些过程。

问题是有时我们会遇到连接问题,而“正常”方法需要很长时间才能崩溃……

它们都在相同的服务中,因为它们使用非常大的模型,并且希望在每次调用中重用来自服务的模型(没有PersonsService.User和RobotsService.User……因为它们在不同的服务中是同一类)。

我设想的第一个解决方案是使用这些长进程创建一个不同的服务,并为正常服务设置一个短超时……但由于模型的使用,我必须做很多修改……

有没有办法在每次调用中设置不同的超时时间?还是通过服务方法?无论如何,我应该删除该服务吗?

提前感谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-19 02:39:13

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

若要在通道上设置OperationTimeout,可以键入case将代理/通道实例设置为IContextChannel并设置OperationTimeout

例如:

代码语言:javascript
复制
IClientChannel contextChannel = channel as IClientChannel;
contextChannel.OperationTimeout = TimeSpan.FromMinutes(10);

HTH,Amit

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12954680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档