我们有一个托管在 IIS 中的 WCF 服务。我可以从日志文件中看到,发送需要 3 分钟以上才能执行的请求的客户端收到 HTTP 503(服务不可用)错误。
如何更改超时?为了测试它是否有效,我将超时时间减少到 3 秒,以确保它确实超时了。
我试过了
<system.web>
<httpRuntime executionTimeout="3"/>
</system.web>
这似乎什么也没做。
我也尝试过更改绑定无济于事。
<basicHttpBinding>
<binding name="basicHttp" receiveTimeout="00:00:03" sendTimeout="00:00:03" >
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
请注意,我试图让 WCF 服务在我们控制的持续时间后返回某种故障。我不希望花费比预期更长的时间来终止请求。
在我把头发扯掉之前,任何帮助都是最受赞赏的。
只是为了澄清...
该服务已经启动并运行了几个月。但是在处理偶尔长时间运行的请求时,客户端会在 3 分钟后收到 HTTP 503 响应。在后台,我们可以看到请求已被正确处理,但花费了 > 5 分钟。显然,此时为时已晚,因为客户端已经收到错误响应。
其他请求正在正常处理。
此时系统上的负载非常低。事实上,这是一个测试环境,事务一次一个,没有重叠。
我也很确定绑定连接到端点。我已经在 WCF 配置编辑器中打开了配置文件,并且所有内容都已正确链接。
甚至可以在 WCF 的这一点上配置超时吗?如果不是,我会理解,但为什么会返回 HTTP 503 错误?
我们真正想做的就是控制返回 503 响应之前的时间长度。