You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker运行ASP.NET Core Web API镜像提示目标DLL不存在的问题求助

ASP.NET Core Web API容器化Docker运行错误解决

问题重现

项目本地运行正常,Dockerfile中的命令单独执行有效,但运行容器时出现以下错误:

$ docker run -p 5000:5000 --name pdf_manager_containerized pdf_manager_image
The command could not be loaded, possibly because:
  * You intended to execute a .NET application:
      The application './publish/PDF_Reader_APIs.Server.dll' does not exist.
  * You intended to execute a .NET SDK command:
      No .NET SDKs were found.

对应的Dockerfile内容:

# Build stage
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
COPY . .
RUN dotnet restore 
RUN dotnet publish -c Release -o /publish

# Runtime stage
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
WORKDIR /publish
COPY --from=build /publish ./ 
ENV ASPNETCORE_URLS=http://+:5000
ENTRYPOINT [ "dotnet", "PDF_Reader_APIs.Server.dll" ]

经排查,容器内/publish目录存在,且实际包含的DLL文件为PDF_Manager_APIs.Server.dll,与Dockerfile中指定的名称不匹配。

解决方案

  1. 修正Dockerfile中的DLL名称
    将Runtime阶段的ENTRYPOINT指令里的DLL名称改为容器内实际存在的文件名:

    ENTRYPOINT [ "dotnet", "PDF_Manager_APIs.Server.dll" ]
    
  2. 重新构建并运行容器
    执行以下命令重新构建镜像并启动容器:

    docker build -t pdf_manager_image .
    docker run -p 5000:5000 --name pdf_manager_containerized pdf_manager_image
    
  3. 额外验证(可选)
    检查项目文件(.csproj)中的<AssemblyName>配置,确认编译输出的程序集名称与Dockerfile中使用的一致,避免后续再次出现名称不匹配问题。

内容的提问来源于stack exchange,提问作者Saucter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:55:30