When I remove the rate related codes, the app works fine. If I write these codes, I get 404 error.
If await webHost.RunAsync(); , await IpPolicy.SeedAsync(); If I remove the await keyword in the , I get the error localhost refused to connect. How can I solve this problem?
Program.cs
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddDbContext(builder);
builder.Services.AddControllersWithViews();
builder.Services.AddValidatorsFromAssemblyContaining<Program>();
builder.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters();
builder.Services.AddMapster();
builder.Services.AddIdentity();
builder.Services.AddCookieConfiguration();
builder.Services.AddOptions();
builder.Services.AddMemoryCache();
builder.Services.Configure<IpRateLimitOptions>(builder.Configuration.GetSection("IpRateLimiting"));
builder.Services.Configure<IpRateLimitPolicies>(builder.Configuration.GetSection("IpRateLimitPolicies"));
builder.Services.AddInMemoryRateLimiting();
builder.Services.AddSingleton<IIpPolicyStore, MemoryCacheIpPolicyStore>();
builder.Services.AddSingleton<IRateLimitCounterStore, MemoryCacheRateLimitCounterStore>();
builder.Services.AddHttpContextAccessor();
builder.Services.AddSingleton<IRateLimitConfiguration, RateLimitConfiguration>();
using IHost webHost = builder.Build();
using (var scope = webHost.Services.CreateScope())
{
IIpPolicyStore IpPolicy = scope.ServiceProvider.GetRequiredService<IIpPolicyStore>();
await IpPolicy.SeedAsync();
}
await webHost.RunAsync();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseIpRateLimiting();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
RoleSeed.Seed(app);
app.Run();
appsettings.json
{
"ConnectionStrings": { "SqlCon": "" },
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"IpRateLimiting": {
"EnableEndpointRateLimiting": true,
"StackBlockedRequests": false,
"HttpStatusCode": 429,
//"IpWhitelist": [ "127.0.0.12" ],
//"EndpointWhitelist": [ "*:/api/customers" ],
"GeneralRules": [
{
"Endpoint": "*",
"Period": "10 s",
"Limit": 20
}
]
},
"IpRateLimitPolicies": {
"IpRules": [
{
"Ip": "*",
"Rules": [
{
"Endpoint": "*",
"Period": "10m",
"Limit": 150
}
]
}
]
}
}
i changed the service order and then i got this error how can i solve it?
