【问题标题】:When I run my dotnet server in docker I get socket hang up error当我在 docker 中运行我的 dotnet 服务器时,出现套接字挂起错误
【发布时间】:2023-03-28 22:12:01
【问题描述】:

我有一个 dotnet 项目,当我在 docker 容器中运行它时,构建正常并且程序启动(它记录一切都很好),但是当我在邮递员中发出请求时,我收到了一个套接字挂断错误。可能是什么原因?当我通过 dotnet run 命令手动启动服务器时,它工作正常。

这是我的 dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["kisc.csproj", ""]
RUN dotnet restore "./kisc.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "kisc.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "kisc.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
EXPOSE 5000
ENTRYPOINT ["dotnet", "kisc.dll"]

容器日志

warn: Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /app

【问题讨论】:

  • @MichaelMao 阅读您的链接后。我和OP有同样的问题。将监听器从 localhost:5000 更改为 :5000 为我解决了这个问题。
  • @AkezhanOb1 你有解决办法吗?

标签: c# .net docker .net-core dockerfile


【解决方案1】:

您是否在应用中设置了默认网址?

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                webBuilder.UseUrls("http://localhost:5000", "https://localhost:8001");
            });
}

或者在你的 dockerfile 中使用端口设置环境

ENV ASPNETCORE_URLS = "http://localhost:5000"

Here

【讨论】:

  • 在 .NET 6 中就像builder.WebHost.ConfigureKestrel(options =&gt; { options.ListenAnyIP(5000); });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2018-05-07
  • 2014-04-12
  • 2022-01-14
  • 2022-07-26
  • 2023-02-04
  • 2019-12-24
相关资源
最近更新 更多