Azure WebJobs持续部署清空wwwroot内容问题求助
WebJobs发布清空site\wwwroot目录的原因分析
核心原因
WebJobs发布时清空site\wwwroot目录,本质是部署模式和路径配置错误导致的误覆盖:
- 部署路径未指向WebJobs专属目录:WebJobs的标准部署路径应为
site\wwwroot\App_Data\jobs\[触发类型]\[WebJob名称](连续触发用continuous,定时触发用triggered)。如果你的部署任务没配置这个子路径,而是直接将WebJobs文件推送到site\wwwroot根目录,就会触发覆盖逻辑。 - 采用了完整部署模式:你的持续部署任务大概率使用了“完整发布”策略,这种策略的执行逻辑是先清空目标目录的所有现有内容,再上传新的部署包文件。根目录下的API项目不属于WebJobs部署包的内容,自然会被一并清空。
- 未开启“保留额外文件”配置:部分部署工具默认会删除目标目录中不在部署包内的文件。如果没勾选“保留目标目录中的额外文件”选项,API项目的文件会被判定为“非部署包内容”而被清理。
快速修正方向
- 调整WebJobs部署任务的目标路径,明确指定到
site\wwwroot\App_Data\jobs下对应触发类型的子文件夹 - 将部署策略切换为“增量发布”,或开启部署工具中的“保留额外文件”选项
- 拆分API和WebJobs的部署任务,让两者各自指向独立的部署路径,避免互相干扰
内容的提问来源于stack exchange,提问作者Andre Fontana
相关产品推荐
相关产品推荐

