C# HTTP错误404 dotnet核心API与Docker

C# HTTP错误404 dotnet核心API与Docker,c#,.net,docker,asp.net-core,.net-core,C#,.net,Docker,Asp.net Core,.net Core,我试图在docker容器中运行dotnet web API,但当我运行它时,我无法导航到该站点,浏览器中会出现HTTP错误404 这是我的dockerfile: FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build WORKDIR /src COPY Backend/Ap

我试图在docker容器中运行dotnet web API,但当我运行它时,我无法导航到该站点,浏览器中会出现
HTTP错误404

这是我的dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY Backend/AppManagerAPI/AppManagerAPI.csproj Backend/AppManagerAPI/
COPY Backend/DTO/DTO.csproj Backend/DTO/
COPY nuget.config ./
COPY Build/dependencies.props Build/
COPY Directory.Build.props ./
COPY ./*.sln ./
COPY Backend/Database/Database.csproj Backend/Database/
COPY Backend/Service/Service.csproj Backend/Service/
COPY Utilities/Utilities.csproj Utilities/
RUN dotnet restore "Backend/AppManagerAPI/AppManagerAPI.csproj"
COPY . .
WORKDIR "/src/Backend/AppManagerAPI"
RUN dotnet build "AppManagerAPI.csproj" -c Release -o /app

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
EXPOSE 5000
ENTRYPOINT ["dotnet", "AppManagerAPI.dll"]
我添加了
.UseUrls(“http://*:5000”)
,因此我在程序上侦听来自端口5000的每个调用。cs:

公共类程序
{
公共静态void Main(字符串[]args)
{
CreateWebHostBuilder(args.Build().Run();
}
公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.useURL(“http://*:5000”);
}

如果我运行
docker logs appmanager
我会得到以下结果:

Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:5000
Application started. Press Ctrl+C to shut down.
以下是我运行容器的方式:
docker run-d-p 5000:5000——名称appmanager appmanager


我已经尝试了所有方法,但我不知道我遗漏了什么…

发现了问题-问题在于csproj设置文件

删除所有Microsoft.*PackageReference并仅添加此引用后:

<PackageReference Include="Microsoft.AspNetCore.App" />


一切都按预期开始工作!:)

如果运行
docker logs appmanager
,是否可以看到API返回404?如果API返回404,那么这是API内部的编程问题。如果返回404的不是您的API,那么您不是在指向您认为自己是的服务。如果我运行
docker logs appmanager
我会得到我在问题中提到的日志@你的请求url是什么?是否有任何演示可以重现您的问题?如果有相同的问题,我的csproj文件中有四个PackageReference,我删除了其他三个,重建并重新启动docker,然后重试,没有任何更改。为了让它工作,你还做了什么改变吗?另外,其他的参考是Razor、容器工具和Json,怎么不需要它们呢?我这样做了,它破坏了我的VS项目。