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

创建ASP.NET MVC应用Windows容器镜像时遇hcsshim启动错误求助

解决ASP.NET MVC应用打包Windows容器镜像时的0xc0370106错误

问题描述

将ASP.NET MVC应用打包为Windows容器镜像后,启动容器时触发以下错误:

container <hash> encountered an error during hcsshim::System::Start: failure in a Windows system call: The virtual machine or container exited unexpectedly. (0xc0370106)

环境信息

  • Docker版本:20.10.17,build 100c701
  • Docker Desktop版本:4.11.1
  • 已尝试切换WSL2后端与Hyper-V后端,问题未得到解决

可能的修复方案

  • 匹配基础镜像与主机系统版本
    Windows容器对基础镜像的OS版本有严格要求,必须与宿主机Windows主版本号一致。运行winver查看主机系统版本,确保Dockerfile中FROM指令使用的镜像版本匹配,例如主机是Windows 10 21H2,需对应使用mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-21H2这类镜像。

  • 验证Dockerfile启动配置
    检查Dockerfile是否包含正确的IIS启动指令,标准ASP.NET容器需用ServiceMonitor.exe托管IIS服务,确保存在类似以下的配置:

ENTRYPOINT ["C:\\ServiceMonitor.exe", "w3svc"]

如果自定义了启动脚本,排查脚本是否存在语法错误或导致进程异常退出的逻辑。

  • 清理Docker冗余资源
    执行以下命令清理缓存与残留容器、镜像:
docker system prune -af
docker rm $(docker ps -aq)

完成后重启Docker Desktop,避免虚拟资源残留导致的冲突。

  • 检查Windows容器功能状态
    打开「控制面板→程序→启用或关闭Windows功能」,确认「容器」选项已勾选;若使用Hyper-V后端,同时确认「Hyper-V」功能已启用。也可通过PowerShell验证:
Get-WindowsFeature Containers

确保输出显示Installed状态。

  • 排查应用依赖缺失
    进入容器手动启动应用,查看详细错误日志:
docker run -it --entrypoint cmd <你的镜像名称>
# 进入容器后执行以下命令启动服务
net start w3svc

检查是否存在依赖组件缺失、配置文件错误等导致应用无法启动的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:48:21