项目从dotnet6升级至dotnet8,本地运行正常,发布镜像至docker后容器运行正常,但请求改服务时响应502。
问题原因:项目内没有指定监听的端口,默认为80端口,但dotnet8 app的服务默认端口修改为了8080
解决方法:
1、在项目内增加指定服务监听的端口
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.Listen(IPAddress.Any, 指定端口, lo => lo.Protocols = HttpProtocols.Http1AndHttp2);
});
2、修改docker 启动时的映射端口为8080
参考链接:https://andrewlock.net/exploring-the-dotnet-8-preview-updates-to-docker-images-in-dotnet-8/#asp-net-core-apps-now-use-port-8080-by-default