2014-09-06 129 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,並且提到的處理程序將是一個很好的起點。