我们在Azure中的同一个VM上安装了几个RESTful API。这些网站在IIS上的Kestrel上运行。它们受具有防火墙的azure应用程序网关的保护。
我们现在有要求至少运行20分钟。请求在Kestrel上不间断地运行(在日志中可见),但发送者要么在5分钟后得到“套接字挂断”,要么永远运行,即使请求在红隼中完成。即使发送方的连接中断,请求仍在Kestrel中继续。
我做了什么:
请求与Postman一起测试,
是否在Azure中隐藏了另一个请求或连接超时?
所以我不久就碰到了这样的事情:
对我们来说,问题可能是超时,就像其他答案所示,但解决方案是(而不是增加超时)在我们的postgres数据库前添加PGbouncer来管理连接并确保在超时触发之前启动一个新连接。
不确定你的后端连接是什么样的,但类似的东西(后端数据库代理)可以让你更有能力调整你的连接/重新连接。
对于我们来说,我们运行的是AKS(azure Kubernetes服务),但是所有azure public ips都遵循相同的规则,导致与此类似的问题。
虽然这不是一个答案,我知道还有两种类型的公共IP地址,其中一种被认为是“基本的”,并且没有相同的可配置性,可能与基本和标准公共IP地址之间的差异有关负载平衡器?