限制ASP.NET Web API提供的同时请求

时间:2015-11-17 15:49:58

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

我使用ASP.NET Web API 2.2和Owin构建Web服务,我观察到对控制器的每次调用都将由服务器端运行的单独线程提供服务,这一点都没有令人惊讶的是我所期待的行为。

我现在遇到的一个问题是因为服务器端的操作非常紧张,所以如果超过X个用户同时调用,服务器代码很可能会抛弃记忆异常。

是否可以设置全局"最大行动次数"这样Web Api就可以排队(不拒绝)来电,只有在有空插槽时才能继续。

我无法在64位运行网络服务,因为一些参考图书馆不支持。

我还查看了像https://github.com/stefanprodan/WebApiThrottle这样的库,但它只能根据调用的频率进行调整。

由于

1 个答案:

答案 0 :(得分:4)

您可以沿着这些行添加一段var previewVideo = require('component-preview-video'); new Ractive({ el: $('.myapp-ui'), template: myAppTemplate, partials: { previewVideo }, oncomplete: function(){....} }); (受您链接到的WebApiThrottle的影响):

OwinMiddleware