我尝试使用docker(Windows系统上的Linux容器)运行我的aspnet 6.0应用程序,并遇到问题。当我不尝试配置kestrel时,它运行得很好。但每当我尝试添加下面的代码时,我都会遇到问题,说“无法访问此站点,本地主机意外关闭了连接。”
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.Listen(IPAddress.Any, 5005, options =>
{
options.Protocols = HttpProtocols.Http2;
});
serverOptions.Listen(IPAddress.Any, 7173, options =>
{
options.Protocols = HttpProtocols.Http1AndHttp2;
});
});
我尝试使用端口5005用于GRpc目的,7173用于暴露rest API端点。我使用visual studio 2022并通过添加docker支持生成DockerFile。
以下是docker compose、compose-override yaml和container snaps。x1c 0d1x
我也试过添加https支持,但没有运气。
serverOptions.Listen(IPAddress.Any, 7173, options =>
{
options.Protocols = HttpProtocols.Http1AndHttp2;
options.UseHttps("appname.pfx", "password");
});
请注意:当我不在docker上运行时,上面所有的代码行都工作得很好。
3条答案
按热度按时间3npbholx1#
我在docker compose中这样配置它,否则我也无法让它工作。
3lxsmp7m2#
我想你也可以在
appsettings.json
中配置这个:ztmd8pv53#
不得不在DockerFile中暴露相同的端口,正如@CodingMytra在评论中指出的那样