asp.net - ASP MVC : Can I drop a client connection programatically?

标签 asp.net asp.net-mvc http azure azure-web-app-service

我有一个在负载均衡器后面运行的 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/

相关文章:

http - 将接口(interface)写入 Web 服务 API

c# - 如何从 SQL Server 获取 ado.net 中数字数据类型的值

asp.net - 在 FormView EditItemTemplate 中格式化日期

c# - ASP.NET 中的 SQL 存储过程问题

javascript - .net Core 2.0 文件上传大小限制

javascript - 如何取消正在进行的 http 调用解析或拒绝 Angular 组件的 onDestroy

javascript - 失去焦点时检查电子邮件 ID 是否已存在于数据库中

.net - 如何本地化 ASP.NET MVC 应用程序中的 Controller 名称和操作?

c# - MVC 长时间运行 EF 存储过程调用

http - 由于来自服务器的 mime 不正确,无法使用 Go 打开 Zip