【发布时间】:2023-01-09 14:37:32
【问题描述】:
假设我有一个托管在 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" />- 也没有用
我没有其他想法如何实现这一点,但我相信应该有一些解决方案能够控制我们想要花在处理上的时间。
【问题讨论】:
标签: web-services wcf asmx .net-4.8