我有一个Azure云服务(经典),它对请求执行冗长的操作。如果流量突然急剧增加,我宁愿通过尝试一次处理所有请求来将云服务的速度降低到蜗牛的速度。因此,对我来说,自然的解决方案似乎是如果并发请求的数量过多,则简单地拒绝新请求(对于我的应用程序,最好是拒绝某些请求,而不是全部放慢速度)。
对于ASP.NET,似乎可以通过<system.web>
来做到这一点:
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="30"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="30"
/>
</system.web>
但是,这似乎不适用于我,然后所有请求都将失败,并且没有清晰的错误消息。此外,Visual Studio告诉我该标签不是预期的。因此,我想这不适用于Azure云服务。
对于Azure云服务,我该怎么做?我也会对限制最大请求时间感兴趣。我唯一想到的就是实际尝试计算C#代码中的请求,但这绝对不是最佳选择。
我正在使用.NET 4.6.1,当RDP进入云服务VM时,IIS版本似乎是10.0(通过查看管理器)。
我已经看到了以下问题的答案:Limit concurrent requests in Azure App Service。但这不是我想要的,因为我不想在任何阶段都阻止IP地址。