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

Azure环境下启动Docker容器后出现500错误,如何排查?

IIS容器Azure环境500错误排查步骤
  • 查看容器内IIS原始错误日志
    直接进入容器,导航到IIS日志目录查看详细错误记录:

    cd C:\inetpub\logs\LogFiles\W3SVC1
    type *.log
    

    日志会包含500错误的具体代码、触发模块、异常详情,这是最直接的排查依据。

  • 检查站点文件权限配置
    静态资源也返回500,优先排查权限问题:

    1. 执行命令查看wwwroot目录权限:
      icacls C:\inetpub\wwwroot
      
    2. 对比本地正常容器的权限列表,确保IIS运行账户(如IUSR、ApplicationPoolIdentity)拥有读取权限。
  • 验证IIS应用池与站点配置

    1. 检查应用池状态:
      C:\Windows\System32\inetsrv\appcmd.exe list apppool
      
      确认默认应用池处于Started状态,且.NET版本、托管管道模式与本地一致。
    2. 检查站点物理路径配置:
      C:\Windows\System32\inetsrv\appcmd.exe list site "Default Web Site" /text:[path='/*'].physicalPath
      
      确认路径正确指向C:\inetpub\wwwroot,无配置偏差。
  • 强制启用详细错误输出
    仅添加<httpErrors errorMode="Detailed" />可能不够,需补充配置:

    1. 在Web.config中添加:
      <system.web>
        <customErrors mode="Off"/>
      </system.web>
      
    2. 用命令强制设置站点错误模式:
      C:\Windows\System32\inetsrv\appcmd.exe set site "Default Web Site" /siteDefaults.httpErrors.errorMode:Detailed
      
  • 复制配置与日志到本地对比
    若容器支持远程文件复制,执行命令将关键文件复制到本地分析:

    docker cp <容器ID>:C:\inetpub\wwwroot\Web.config ./local-web.config
    docker cp <容器ID>:C:\inetpub\logs\LogFiles\W3SVC1 ./local-logs
    

    对比本地正常环境的配置,排查是否存在连接字符串、模块引用等差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:35:17