我有一个在负载均衡器后面运行的 ASP.NET Web API 应用程序。某些客户端使 HTTP 繁忙连接保持事件状态的时间过长,从而创建不必要的关联性并导致某些服务器实例负载过高。为了解决这个问题,我希望优雅地关闭在短时间内执行过多请求的连接(从而迫使客户端重新连接并选择不同的服务器实例),同时保持低流量连接无限期地保持事件状态。因此我不能使用静态配置。
是否有一些 API 可以调用来标记“回答此问题然后关闭连接”的请求?或者我可以简单地添加 ASP.NET 将看到的 Connection: close
HTTP header 并为我关闭连接吗?
最佳答案
对于您的情况来说,看起来最好的解决方案是名为 Dynamic IP restriction 的内置 IIS 功能。 。 “为了提供这种保护,该模块会暂时阻止发出异常大量并发请求或在短时间内发出大量请求的 HTTP 客户端的 IP 地址。”
它受 Azure Web Apps 支持: https://azure.microsoft.com/en-us/blog/confirming-dynamic-ip-address-restrictions-in-windows-azure-web-sites/
<小时/>如果这是有帮助的答案,请将其标记为有帮助或将其标记为答案。谢谢!
关于asp.net - ASP MVC : Can I drop a client connection programatically?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634998/