【问题标题】:How to limit maximum concurrent connections / requests / sessions in ASP.NET WebAPI如何限制 ASP.NET WebAPI 中的最大并发连接数/请求数/会话数
【发布时间】:2014-10-31 08:40:48
【问题描述】:

我正在寻找一种机制来限制与使用 ASP.NET WebAPI 公开的服务的并发连接数。

为什么?因为该服务正在执行对硬件资源昂贵的操作,我想防止在压力下降级。

更多信息:

  • 我不知道每个时间段会发出多少请求。
  • 此服务在其自己的 IIS 应用程序池中运行,并且不能在 IIS 中限制父站点上的最大连接数。
  • 我找到了this 套件,但支持的算法不包括我感兴趣的算法。

我正在寻找开箱即用的东西(像 IIS 配置设置一样简单的东西),但我找不到我真正需要的东西。

有什么线索吗?

谢谢!

【问题讨论】:

  • 帮助缩小可能的答案(并避免XY problem):为什么?
  • 更新了问题。

标签: asp.net iis asp.net-web-api asp.net-web-api2


【解决方案1】:

扩展您的服务可能比限制请求数量更好。您可以将繁重的处理发送到一些后台作业并保留您的 API 服务请求。

但假设无法完成上述操作,您将需要使用可用的节流包之一,如果没有满足您的要求,则需要编写自己的。

我建议从 WebApiContrib 开始使用 ThrottlingHandler 您可以通过正确实现 GetUserIdentifier 方法来满足您的需求。

如果没有,您将需要实现自己的 MessageHandler,并且提到的处理程序将是一个很好的起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多