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

Azure App Service 部署的.NET Core 2.1应用启动报错:依赖清单中指定的程序集未找到

排查Azure App Service上.NET Core 2.1应用启动失败问题

嘿,遇到这个问题我太熟悉了——之前帮朋友排查过几乎一模一样的情况,咱们一步步来拆解解决:

这个错误的核心很明确:你的应用依赖清单(Microsoft.AspNetCore.AzureAppServices.HostingStartup.deps.json)里要求加载2.2.0版本的Microsoft.AspNetCore.AzureAppServices.HostingStartup组件,但在Azure环境里找不到对应的DLL。而本地IIS能正常运行,说明问题大概率出在Azure的运行环境配置或者部署包的依赖处理上。

1. 锁死Azure App Service的.NET Core运行时版本

Azure App Service有时候会自动更新默认运行时,哪怕你的应用是2.1版本,环境里的高版本组件可能会“串味”干扰依赖解析:

  • 登录Azure门户,找到你的App Service,进入配置 > 常规设置
  • 确认**.NET版本**设置为明确的.NET Core 2.1(不要选Latest或者2.2/3.1这些更高版本)
  • 保存设置后重启应用,看看能不能正常启动

2. 重新打包部署,检查依赖文件

虽然你说近一年没更新,但可能之前的部署包缓存或者打包逻辑出了问题:

  • 本地用命令行重新发布:dotnet publish -c Release --self-contained false(保持依赖于系统运行时,不要用自包含模式)
  • 打开发布后的wwwroot文件夹,检查有没有Microsoft.AspNetCore.AzureAppServices.HostingStartup.dll,并且版本是2.1.x,不是2.2.0
  • 打开Microsoft.AspNetCore.AzureAppServices.HostingStartup.deps.json,确认里面的版本号和实际DLL版本匹配

3. 临时禁用HostingStartup组件(应急方案)

如果上面两步没效果,可以直接强制禁用这个惹麻烦的HostingStartup:

  • 进入App Service的配置 > 应用程序设置,新增一个配置项:
    • 键:ASPNETCORE_HOSTINGSTARTUPASSEMBLIES
    • 值:留空(或者把原来值里的Microsoft.AspNetCore.AzureAppServices.HostingStartup删掉)
  • 保存后重启应用,应该能绕开这个依赖问题先让应用跑起来

4. 检查Azure的扩展组件

有时候Azure的一些内置扩展(比如Application Insights自动注入)会偷偷注入高版本的HostingStartup组件,干扰你的应用:

  • 进入App Service的扩展页面,看看有没有安装和ASP.NET Core相关的扩展,先暂时卸载掉,然后重启应用试试
  • 如果是Application Insights的问题,建议在你的应用代码里手动配置AI,不要依赖Azure的自动注入功能

为什么本地IIS没问题?

本地IIS的运行环境是你自己完全控制的,.NET Core 2.1的运行时是独立隔离的,不会被高版本组件干扰;但Azure App Service是共享环境,可能存在运行时版本叠加、自动更新或者扩展注入的情况,导致依赖解析时误找到2.2.0的版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:32:29