IIS SOAP Web 服务 - 客户端未收到响应

时间:2021-03-13 15:10:12

标签: .net windows sockets iis soap

我尝试使用基于 IIS 的 .NET 3rd 方 SOAP 网络服务。

当在一个 HTTP 套接字连接中运行大量请求时(客户端为每个请求重用 TCP 套接字),我偶尔会遇到一个停顿,即客户端没有收到来自服务器的响应。

套接字保持打开状态,我可以看到正在发送 TCP KeepAlive 数据包,但没有来自服务器的数据到达。这种情况非常断断续续,很难重现。

服务器正在接收 SOAP 请求并对其执行操作(我可以在服务器的数据库中看到相应的工件)。

没有 IIS 或 Windows 错误或事件。

预期的 SOAP 响应相当小(小于 300 字节),所以我认为可能有一个包含响应的丢弃数据包,但我从未看到重传。

最终,客户端应用程序在等待响应(返回的soap调用)时超时。

使用wireshark,我偶尔会看到Spurious Retransmissions,所以客户端和服务器之间的底层连接不是100%。服务器和客户端之间的路径是曲折的,经过一系列 VPN,一个到办公室 VPN,然后再经过 AWS 中转网关 VPN。

我的问题是:如果响应数据包被丢弃,为什么服务器的 TCP 堆栈没有重新发送它?应该有一个重传计时器到期并导致重传,但是当发生停顿时,服务器不再发送应用程序数据。

为了找出问题所在,我设置了一个测试,通过该测试我一遍又一遍地发出相同的 SOAP 请求,但是每个请求都有一个全新的 TCP 连接,当我这样做时,我从来没有看到摊位。

我不确定我是在处理 IIS 还是 Windows 配置问题,还是某种服务器错误。

有没有其他人看过这个?

0 个答案:

没有答案