我正在使用带有 IIS7 的 ASP.NET,今天我的一个页面中的一个错误导致服务器停机。该脚本使用 ajax 以每秒约 1000 个请求的速度查询资源。请求已通过身份验证,因此我知道哪个用户请求了哪个页面。
我的问题是,无论是通过 IHttpModule 还是其他方式,我如何在服务器级别限制客户端每秒(或每分钟)允许发出的最大请求数,然后引入延迟以限制他们的请求?
我正在使用带有 IIS7 的 ASP.NET,今天我的一个页面中的一个错误导致服务器停机。该脚本使用 ajax 以每秒约 1000 个请求的速度查询资源。请求已通过身份验证,因此我知道哪个用户请求了哪个页面。
我的问题是,无论是通过 IHttpModule 还是其他方式,我如何在服务器级别限制客户端每秒(或每分钟)允许发出的最大请求数,然后引入延迟以限制他们的请求?
如果有人找到返回这里的路,您可以在 IIS 8 及更高版本中限制每个用户的请求。设置为denyRequestByRate。文档在这里。
打开您的 IIS 管理器并选择签名到您的 asp.net 应用程序的应用程序池。打开此池的高级设置并将请求限制设置为大于 0。