如何为dotnet MVC应用程序配置默认端口?

时间:2019-07-19 11:04:24

标签: docker asp.net-core

我正在开发一个非常基本的asp.net核心Web应用程序。

当我在个人计算机上手动运行该应用程序时,端口为5050。

我已经编写了一个Dockerfile(从教程中得到启发)。在这里:

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["projet1.csproj", "./"]
RUN dotnet restore "./projet1.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "projet1.csproj" -c Release -o /app

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

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

运行图像时,应用程序正在端口80上应答。这是一件好事,但是我想了解为什么它正在端口80上侦听。

我没有配置文件,也没有命令行参数,它告诉我的应用程序监听80端口。这种差异怎么可能?

1 个答案:

答案 0 :(得分:0)

这是您正在使用的运行时映像的概述中的documented(在底部):

  

此图像将ASPNETCORE_URLS环境变量设置为http://+:80,这意味着,如果您未明确[sic]在应用程序中设置URL,请通过Program.cs中的app.UseUrl例如,那么您的应用程序将监听容器内的端口80。

在本地运行应用程序时,默认使用端口5000(HTTP)和5001(HTTPS)。可以在launchSettings.json中对此进行覆盖,我希望您已完成此操作,以使其在您的环境中使用5050


请注意,您不赞成使用正在使用的图像,而推荐使用Microsoft自托管的mcr.microsoft.com/dotnet/core/aspnetmcr.microsoft.com/dotnet/core/sdk图像。