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

部署.NET Core Azure WebJob后进入待重启状态,提示hostpolicy.dll缺失

解决Azure WebJob部署后提示hostpolicy.dll找不到的问题

我之前帮好几个开发者排查过这个问题,大概率是运行时版本不匹配或者部署配置出了问题,给你几个实用的排查和解决步骤:

  • 检查Azure WebApp的.NET Core运行时版本
    登录Azure门户,找到你的WebApp,进入「配置」→「常规设置」,确认这里选择的.NET版本和你WebJob项目的目标框架版本完全一致。比如你项目是.NET 6 LTS,就别选成.NET 7或者其他版本——不同版本的运行时目录结构不一样,自然找不到对应版本的hostpolicy.dll。

  • 确认WebJob的部署包是完整的发布产物
    别直接上传项目的源码或者单个dll!一定要在Visual Studio里右键项目→「发布」,选择「文件夹」作为目标,等发布完成后,把整个发布文件夹里的所有内容(包括runtime、config、程序集等)打包上传到WebJob。如果是用Azure DevOps或者GitHub Actions部署,也要确保用的是发布后的输出目录,而不是项目根目录。
    要是担心依赖Azure的全局运行时出问题,你可以选择自包含部署:发布时勾选「部署模式:自包含」,这样发布包会包含所有需要的运行时文件,完全不依赖Azure服务器上的dotnet环境,从根源上避免找不到库的问题。

  • 核对WebJob的启动命令是否正确
    打开WebJob的settings.job文件,检查commandLine字段是否正确。对于框架依赖的WebJob,启动命令应该是dotnet YourWebJobAssembly.dll;如果是自包含部署,直接写.\\YourWebJob.exe就行。要是启动命令写错了(比如直接写dll路径),就会触发找不到hostpolicy.dll的错误。

  • 通过Kudu工具验证文件是否存在
    访问https://<你的WebApp名称>.scm.azurewebsites.net进入Kudu控制台,导航到D:\Program Files\dotnet\shared\Microsoft.NETCore.App\<你的目标版本号>目录,看看里面有没有hostpolicy.dll。如果没有,说明Azure服务器上的这个运行时版本可能损坏了,你可以尝试切换到同大版本的另一个小版本(比如从.NET 6.0.10换成6.0.11),或者改用自包含部署绕开这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:22:36