在App Service运行简单WebJob时遇程序集加载异常求助
解决.NET Framework WebJob部署依赖缺失问题
核心原因
App Service不会自动从NuGet拉取依赖包,必须将WebJob运行所需的**所有程序集(包括NuGet包的dll)**和exe一起部署。你只上传exe的话,自然会找不到Microsoft.Azure.WebJobs.Host这类依赖。
具体解决步骤
- 本地生成完整发布包:在Visual Studio右键WebJob项目选「发布」,目标选「文件夹」指定本地输出目录,配置选
Release后发布。发布完成的目录里会包含exe、app.config以及所有依赖的dll(包括NuGet下载的包)。 - 处理自定义包源依赖:如果用了自定义NuGet源的包,只要这些包已经正确安装到本地项目的
packages目录,发布时Visual Studio会自动把对应dll复制到发布目录,不需要在App Service配置自定义包源。 - 完整上传到App Service:通过FTP、Azure门户的App Service编辑器或部署中心,把发布目录里的所有文件(不是只传exe)上传到对应路径:持续运行的WebJob传
site\wwwroot\App_Data\Jobs\Continuous\[你的WebJob名称],触发式WebJob传site\wwwroot\App_Data\Jobs\Triggered\[你的WebJob名称]。 - 验证部署:上传完成后在Azure门户重启WebJob,查看日志确认是否还有文件找不到的错误。
额外提示
- 不要手动删除发布目录里的任何dll,除非你确定它不是依赖项。
- 如果仍有依赖问题,可以用本地的
Fuslogvw.exe(程序集绑定日志查看器)排查哪些依赖没被正确复制。
内容的提问来源于stack exchange,提问作者PointlessSpike
相关产品推荐
相关产品推荐

