假设我有一个托管在IIS 10上的Web服务(WCF和ASMX. net framework 4.8)。Web服务有一个包含以下内容的方法:
public CustomerListResponse Get(CustomerListRequest request)
{
//sleep for 1 hour
System.Threading.Thread.Sleep(TimeSpan.FromHours(1));
return new CustomerListResponse();
}
在线程上执行休眠的代码行只是为了说明有些代码在某些情况下可能需要很长时间。
我正在寻找的是设置或限制允许的处理时间的方式,例如一分钟和错误返回到客户端。我希望处理被IIS/WCF/ASMX杀死,如果执行时间将超过一分钟。
不幸的是,我没有在IIS中找到这样做的方法。
我尝试了:
- 在WCF绑定时,有几个属性openTimeout ="00:01:00" closeTimeout ="00:01:00" sendTimeout ="00:01:00" receiveTimeout ="00:01:00"-我设置了所有属性,但没有工作。代码仍然可以处理很长时间。
<httpRuntime targetFramework="4.8" executionTimeout="60" />
-也不起作用
我没有其他的想法如何实现这一点,但我相信应该有一些解决方案,能够控制多长时间,我们希望花在处理。
1条答案
按热度按时间cl25kdpy1#
您需要在客户端和服务器端都设置超时。
客户端:
服务器端: