Просто добавьте более «современный» ответ на эту проблему: для .NET WebAPI WebApiThrottle отлично и, вероятно, делает все, что вы хотите из коробки.
Это также доступно на NuGet .
Реализация занимает около минуты или около того, и это очень настраиваемый:
config.MessageHandlers.Add(new ThrottlingHandler()
{
Policy = new ThrottlePolicy(perSecond: 1, perMinute: 30, perHour: 500, perDay:2000)
{
IpThrottling = true,
ClientThrottling = true,
EndpointThrottling = true
},
Repository = new CacheRepository()
});