服务器仅对长请求不响应。基础连接已关闭。读取响应()失败

Server not responding for only long requests. Underlying connection was closed. ReadResponse() failed

我尝试了以下解决方案:

1) 增加客户端请求的超时时间。

2) 在 web.config HTTPRuntime 标记中增加服务器 ExecutionTimeout。

3) 我试过同时使用 ASMX 和 WCF 服务。即使服务器页面需要时间(代码隐藏),也会出现错误 "ReadResponse() failed: The server did not return a response for this request.".

4) 从 IIS 更改应用程序池超时。

5) 更改 IIS > 我的网站 > HTTP 响应 header > 设置通用 headers > Enable/Disable HTTP alive

我正在使用以下代码来测试服务器超时问题:

    [WebMethod]
    public string LongRequest(int delaySeconds)
    {
        Thread.Sleep(delaySeconds*1000);
        return "Delayed for " + delaySeconds + " Seconds";
    }

我们有不同的服务器,但这个问题只出现在一台服务器上。

注意!仅当请求超过 40 秒时才会出现此问题。 (这个时间不具体,每次都是增加减少)

问题已解决。我发现服务器交换机被配置为关闭较长的请求。我现在已经使用了服务器的内部 IP(只能从我们的其他服务器访问)。