我有一个.Net 6 ASP.Net Web API项目,内置于Windows docker映像中,并在Azure应用程序服务中运行(作为docker容器)。日志显示一切正常。然而,当我试图访问这个Azure Web应用程序的招摇过市页面(使用“默认域”)时,我得到了404。我尝试过的地址示例:
为什么它遥不可及?
多一点背景。。。我的应用程序成功地作为Windows docker镜像部署到docker Hub。我的Azure应用程序服务从Docker Hub获取图像。同样,Visual Studio也可以在Windows docker桌面中启动相同的docker映像。。。并允许我检查码头集装箱暴露的型锻页面。
因此,一切看起来都“刚刚好”,但当从Azure应用程序服务提供服务时,我有404。
这是我正在使用的dockerfile:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2022 AS build
WORKDIR /src
COPY ["Alrium.WebAPI/Alrium.WebAPI.csproj", "Alrium.WebAPI/"]
COPY ["Alrium.Data/Alrium.Data.csproj", "Alrium.Data/"]
COPY ["Alrium.Services/Alrium.Services.csproj", "Alrium.Services/"]
COPY ["Alrium.StyleMapper/Alrium.StyleMapper.csproj", "Alrium.StyleMapper/"]
RUN dotnet restore "Alrium.WebAPI/Alrium.WebAPI.csproj"
COPY . .
WORKDIR "/src/Alrium.WebAPI"
RUN dotnet build "Alrium.WebAPI.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Alrium.WebAPI.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Alrium.WebAPI.dll"]
这个dockerfile是Visual Studio为我创建的。我唯一改变的是构建映像。。。我把它改为服务器核心(默认为服务器纳米)。我之所以做出这样的改变,是因为微软说使用服务器核心可以避免构建问题。
有什么想法吗?