我们有10个批处理作业,它们调用IIS上的内部API。在进行负载测试并从所有10个批处理作业中调用WEB API post方法时,我们将从服务器中随机获取500个响应。如果我们在处理了几百条消息后提供了10000条消息,我们会发现连续10条消息失败,然后它会再次开始工作,我们暂时不会注意到其他错误。
经过一番研究后,我们意识到发生的事情是IIS正在关闭客户端和服务器之间的连接,并且请求的响应是500(内部服务器错误)。连接:每条消息都提供Keep-Alive请求标头。我们遇到的问题是不知道500是否正在发生,因为API因意外错误而失败或服务器关闭了连接。
我的问题是,有没有办法弄清楚500是否是由连接被服务器关闭引起的?
IIS是否应该抛出500或者IIS可以配置为在关闭连接时发送其他类型的响应?由于消息本身确实没有问题,我们希望在发生此连接问题时重新处理消息,并且不回应客户端,认为它是导致API失败的消息。