如何更改IIS托管的WCF服务的超时?

ill*_*sio 5 wcf

我们在IIS中托管了WCF服务.我可以从日志文件中看到发送执行时间超过3分钟的请求的客户端收到HTTP 503(服务不可用)错误.

如何更改超时?为了测试它,我将超时时间减少到3秒,以确保它实际超时.

我试过了

<system.web> 
    <httpRuntime executionTimeout="3"/> 
</system.web> 
Run Code Online (Sandbox Code Playgroud)

这似乎什么都不做.

我也试过改变绑定无济于事.

  <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>
Run Code Online (Sandbox Code Playgroud)

注意,我试图让WCF服务在我们控制的持续时间后返回某种失败.我不期望花费超过预期的请求终止.

在我撕掉头发之前最感谢的任何帮助.


只是为了澄清......

该服务已启动并运行了几个月.但是在处理偶尔长时间运行的请求时,客户端会在3分钟后收到HTTP 503响应.在后台我们可以看到请求已正确处理,但已花了> 5分钟.显然,到目前为止,由于客户端已收到错误响应,为时已晚.

其他请求正在正常处理.

此时系统的负载非常低.实际上,这是一个测试环境,交易是一次一个,没有重叠.

我也非常确定绑定是否连接到端点.我在WCF配置编辑器中打开了配置文件,所有内容都正确链接.

甚至可以在WCF中配置此时的超时?在某种程度上我会理解,如果没有,但那么为什么会返回HTTP 503错误?

我们真正想做的就是控制503响应返回之前的时间长度.

ill*_*sio 1

在 IIS 和测试 WCF 服务中进行大量实验后,我无法重现该问题 - 即使在同一台服务器上也是如此。只有公司内的另一个团队看到了这个问题。

我可以强制出现 HTTP 503 错误的唯一方法是使应用程序池脱机,但可以预见的是,这会导致请求传入时立即返回错误。

进一步调查显示,与来自 IIS 的 503 响应关联的 HTML 与返回给客户端的 HTML 不同。

诚然,这尚未得到证实,但我们得出的结论是,该问题是由客户端和服务器之间的某些网络组件引起的。

中间确实有一个代理返回超时。