我有一个相当大的“老”的WCF服务,有许多不同的方法。
这些方法中的大多数都是“正常”的,所以它们应该在10秒内回答,但也有几种方法(8或9)需要很长的过程,所以它们可能需要很长时间才能得到响应。
接收超时和发送超时设置为00:40:00,以确保它们有足够的时间完成这些过程。
问题是有时我们会遇到连接问题,而“正常”方法需要很长时间才能崩溃……
它们都在相同的服务中,因为它们使用非常大的模型,并且希望在每次调用中重用来自服务的模型(没有PersonsService.User和RobotsService.User……因为它们在不同的服务中是同一类)。
我设想的第一个解决方案是使用这些长进程创建一个不同的服务,并为正常服务设置一个短超时……但由于模型的使用,我必须做很多修改……
有没有办法在每次调用中设置不同的超时时间?还是通过服务方法?无论如何,我应该删除该服务吗?
提前感谢!!
发布于 2012-10-19 02:39:13
首先,在您的情况下要配置的超时是OperationTimeout,它允许在超时之前等待服务回复的时间限制。在客户端调用之前,您可以修改操作超时。
若要在通道上设置OperationTimeout,可以键入case将代理/通道实例设置为IContextChannel并设置OperationTimeout。
例如:
IClientChannel contextChannel = channel as IClientChannel;
contextChannel.OperationTimeout = TimeSpan.FromMinutes(10);HTH,Amit
https://stackoverflow.com/questions/12954680
复制相似问题