【发布时间】:2012-10-08 21:54:36
【问题描述】:
我有一个相当大的“旧”WCF 服务,其中包含许多不同的方法。
这些方法中的大多数都是“正常”的,因此它们应该在 10 秒内回答,但有几种方法(8 或 9)是漫长的过程,因此它们可能需要很长时间才能得到响应。
receivetimeout 和 sendtimeout 设置为 00:40:00,以确保他们有足够的时间来完成这些过程。
问题是有时我们会遇到连接问题,而“正常”方法需要很长时间才能崩溃...
他们都在同一个服务中,因为他们使用一个非常大的模型,并且他们希望在每次调用中重用服务中的模型(没有 PersonsService.User 和 RobotsService.User...,因为它们是相同的不同服务中的类)。
我想的第一个解决方案是用那些长流程创建一个不同的服务,并为正常服务设置一个短的超时时间……但由于模型的使用,我应该做很多改变……
有没有办法在每次调用中设置不同的超时时间?还是通过服务方式?我还是应该分块服务吗?
提前致谢!!
【问题讨论】:
-
您是否为每个调用重新创建代理对象?如果是,请参阅此链接以获取可能的解决方案:stackoverflow.com/questions/1826392/…
-
不,我不是,我有一个代理的单身人士。
标签: wcf timeout n-tier-architecture