当我的win32(c#)应用程序调用Web服务时,我收到以下错误.
The request failed with HTTP status 504: Gateway timeout server response timeout.
我理解'我认为'这是因为上游请求没有得到及时的响应.
但我的问题是这个?如何更改win32应用程序中的app.config设置以允许更多时间来处理其数据.我假设我要求在我的应用程序设置上进行这些更改,因为web服务和托管ws的IIS设置了更长的时间.
期待回复,并提前感谢您.
斯科特
你不能.问题不在于您的应用程序不耐烦并且超时; 问题是中间代理不耐烦并超时."服务器在充当网关或代理时,没有收到来自URI指定的上游服务器的及时响应." (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5)它很可能表明原始服务器存在某种问题,因此它无法快速响应转发的请求.
可能的解决方案,其中任何一个都不会让你开心:
增加代理的超时值(如果它在您的控制之下)
向不同的服务器发出请求(如果有另一台服务器具有相同的数据)
以不同方式提出您的请求(如果可能),以便您一次请求更少的数据
一旦服务器没有问题,请再试一次
CheckUpDown 对504错误有一个很好的解释:
服务器(不一定是Web服务器)充当网关或代理,以满足客户端(例如您的Web浏览器或我们的CheckUpDown机器人)访问请求的URL的请求.此服务器未从其访问的上游服务器收到及时响应以处理您的HTTP请求.
这通常意味着上游服务器关闭(对网关/代理没有响应),而不是上游服务器和网关/代理不同意交换数据的协议.
此问题完全是由于后端计算机(可能包括Web服务器)之间的IP通信速度缓慢.只有在托管Web服务器的站点上设置网络的人才能解决此问题.