Visual Studio 2022无法在Docker中启动ASP.NET Core项目求助
解决方案
不需要对VS2022默认模板做额外修改,按以下步骤排查即可解决问题:
- 第一步确认Docker运行模式与WSL集成配置:打开Docker Desktop设置,确认当前运行的是Linux容器模式,同时在「资源-WSL集成」页面开启你正在使用的WSL发行版的集成开关,保存设置后重启Docker Desktop。
- 第二步清理VS容器工具缓存:完全关闭Visual Studio 2022,打开资源管理器进入路径
%LocalAppData%\Microsoft\VisualStudio\,找到名称为17.0_开头加随机字符的文件夹,进入后删除ContainerTools目录。 - 第三步校验项目Dockerfile配置:打开项目根目录下自动生成的Dockerfile,确认基础镜像地址和版本正确,dotnet 6对应的基础镜像配置示例如下:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src COPY ["你的项目名称.csproj", "./"] RUN dotnet restore "./你的项目名称.csproj" COPY . . WORKDIR "/src/." RUN dotnet build "你的项目名称.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "你的项目名称.csproj" -c Release -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "你的项目名称.dll"]
- 第四步手动预拉取基础镜像:打开WSL终端执行以下命令,提前拉取对应版本的dotnet镜像,避免VS自动拉取失败:
docker pull mcr.microsoft.com/dotnet/aspnet:6.0 docker pull mcr.microsoft.com/dotnet/sdk:6.0
- 第五步关闭VS快速部署功能:重新打开项目,右键项目名称选择「属性」-「调试」-「常规」,点击「打开调试启动配置文件UI」,找到Docker对应的配置项,取消勾选「快速部署(仅适用于调试)」,保存配置后按下F5启动即可。
如果上述步骤完成后仍出现ERR_EMPTY_RESPONSE错误,可执行docker ps查看运行中的容器ID,再执行docker logs 你的容器ID查看容器运行日志,定位具体启动故障。
内容的提问来源于stack exchange,提问作者Alexandre
相关产品推荐
相关产品推荐

