我正在调试Server 2008承载的SOAP SQL服务。我知道这些在未来的版本中是不可取的,当然,我们应该考虑一种不同的技术。有一个公开的程序,这是合法运行相当长的时间,有时,视情况而定。现在,当它溢出超过120秒时,连接由于超时而被重置,在http错误日志中有一个条目。
443 HTTP/1.1 POST /APIDe信封/-- Timer_EntityBody -
而客户端基于CURL的库得到一个104错误(CONNRESET)。我们尝试通过运行http.sys来调整超时设置
http添加超时值timeouttype=idleconnectiontimeout value=480
但是,这些设置似乎并没有给http.sys留下深刻印象(这些设置最终在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters),中结束,而不是在重新启动server并最终重新启动整个服务器之后)。超时时间仍在120秒。实际上,调用大约需要130次,但我将这种差异(可能是错误的)归因于其他延迟。
无论如何,问题是: Server正在使用http.sys运行其SOAP端点--在本例中如何配置http.sys?专门用来暂停的?
发布于 2014-11-06 12:00:10
对任何可能会遇到这件事的人来说。结果证明,这不是超时问题,而是POSTed有效负载的大小问题。如果所发布的参数的大小将超过某一阈值(介于8到9 Mb之间),则传输将始终处于停滞状态。修正的是将SSL版本设置为3作为CURL选项之一(我们有一个定制的SOAP客户端库)。
在我们的示例中,调试它的一个非常复杂的问题是,某些服务器支持构建在Nginx代理上的负载均衡器。对那些人来说,电话打得很好!但不是为了我们直接联系到的人。我的猜测(我既不是Nginx也不是SSL方面的专家)是,Nginx在“两端”都有足够的兼容接口,并且能够正确地接收呼叫并将其转发到服务器。
导致解决方案的是尝试从不同的客户沟通。当它在SoapUI中运行良好时,而不是从我们的库中运行时,这只是一个窥探连接参数的每个细节的问题,直到有什么改变。
https://dba.stackexchange.com/questions/62748
复制相似问题