2014-09-06 118 views
0

我正在寻找一种机制来限制使用ASP.NET WebAPI公开的服务的并发连接数。如何限制ASP.NET WebAPI中的最大并发连接数/请求数/会话

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

更多信息:

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

我正在寻找的东西开箱即用(东西那么简单,因为一个IIS配置设置)但我无法找到我需要的东西。

任何线索?

谢谢!

+0

为了帮助缩小可能的答案(并避免[XY问题](http://meta.stackexchange.com/q/66377/67392)):为什么? – Richard 2014-09-06 16:03:51

+0

更新了问题。 – mo5470 2014-09-06 17:31:11

回答

1

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

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

我建议从WebApiContrib 开始与ThrottlingHandler您可能能够通过正确地实施该GetUserIdentifier方法,以满足您的需求。

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

相关问题