Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 为什么可以';在使用Asp.Net Core的此AspNetCoreRateLimit中间件时,我无法获得启动的速率限制_Asp.net Core - Fatal编程技术网

Asp.net core 为什么可以';在使用Asp.Net Core的此AspNetCoreRateLimit中间件时,我无法获得启动的速率限制

Asp.net core 为什么可以';在使用Asp.Net Core的此AspNetCoreRateLimit中间件时,我无法获得启动的速率限制,asp.net-core,Asp.net Core,谁能告诉我我做错了什么。。。我使用这个中间件来限制客户端可以对我的端点进行的API调用的数量: 我不能让这个利率限制生效。以下是我的Startup.cs(相关部分): public void配置服务(IServiceCollection服务) { //需要从appsettings.json加载配置 services.AddOptions(); //需要存储速率限制计数器和ip规则 services.AddMemoryCache(); //从appsettings.json加载常规配置 serv

谁能告诉我我做错了什么。。。我使用这个中间件来限制客户端可以对我的端点进行的API调用的数量:

我不能让这个利率限制生效。以下是我的Startup.cs(相关部分):

public void配置服务(IServiceCollection服务)
{
//需要从appsettings.json加载配置
services.AddOptions();
//需要存储速率限制计数器和ip规则
services.AddMemoryCache();
//从appsettings.json加载常规配置
services.Configure(Configuration.GetSection(“IpRateLimiting”);
//注入计数器和规则存储
services.AddSingleton();
services.AddSingleton();
// https://github.com/aspnet/Hosting/issues/793
//默认情况下,未注册IHttpContextAccessor服务。
//clientId/clientIp解析器使用它。
services.AddSingleton();
//配置(解析程序、计数器密钥生成器)
services.AddSingleton();
//配置强类型配置设置对象
var appsetingssection=Configuration.GetSection(“AppSettings”);
services.Configure(应用设置部分);
var appSettings=appSettingsSection.Get();
services.AddCors(选项=>
{
options.AddPolicy(“AllowSpecificCorigin”,
corsBuilder=>corsBuilder.WithOrigins(“*”)
.AllowAnyMethod()
.AllowAnyHeader());
});
services.AddControllers();
}
//此方法由运行时调用。使用此方法配置HTTP请求管道。
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境、iLogger工厂)
{
//确保CORS调用在使用MVC之前
应用程序UseCors(“AllowSpecificCorigin”);
loggerFactory.AddLog4Net();
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseIpRateLimiting();
app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(端点=>
{
endpoints.MapControllers();
});
}
和我的appsettings.json文件:

"IpRateLimiting": {
      "EnableEndpointRateLimiting": true,
      "StackBlockedRequests": false,
      "RealIPHeader": "X-Real-IP",
      "ClientIdHeader": "X-ClientId",
      "HttpStatusCode": 429,
      "GeneralRules": [
        {
          "Endpoint": "*",
          "Period": "10s",
          "Limit": 1
        }
      ]
    }
仅供参考,我尝试过将EnableEndpointRateLimiting设置为“真”和“假”,但都没有效果


我的测试API调用正在进行。。。当我期待被扼杀的时候

这对我来说是一个非常愚蠢的错误。我在AppSettings.json文件的“AppSettings”部分嵌套了IpRateLimiting会话,而该会话本应在根级别指定。

您应该将其作为已接受的答案,看看您是如何回答问题的:-)