Docker容器,ERR_EMPTY_RESPONSE,带CORS AllowAnyOrigin

ezykj2lf  于 12个月前  发布在  Docker
关注(0)|答案(1)|浏览(143)

我刚开始使用Docker,我想在ASP上将我的Web API连接到它。当我在我的API的Program.cs中配置CORS策略时,如果我指定受限地址,例如:

builder
 .WithOrigins("http://localhost:5256 ")
.AllowAnyHeader()
.AllowAnyMethod();

字符串
那么容器通常会被创建并在将来正常启动。但是如果我指定

app.UseCors(builder => builder.AllowAnyOrigin());


然后当你启动容器时,没有页面并给出结果ERR_EMPTY_RESPONSE有人能解释一下吗,为什么会发生这种情况?这是我的Program.cs文件:

using System;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddDbContext<AppDbContext>();


var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.UseCors(builder => builder.AllowAnyOrigin());

app.MapControllers();

app.Run();


容器工作,但当我点击链接,它只是ERR_EMPTY_RESPONSE. enter image description here
我试着用

builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowLocalhost", builder =>
    {
        builder
            .WithOrigins("http://localhost:5256")
            .AllowAnyHeader()
            .AllowAnyMethod();
    });
});


但根本不管用。我还试着加上

.SetIsOriginAllowed(_ => true),


但也无济于事

wtzytmuj

wtzytmuj1#

我会尽早在中间件中注册它,通常在swagger开发环境之上,因为它可能会在应用cors之前处理请求

相关问题