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

Azure App Service部署后Kudu与WinSCP显示wwroot内容不一致排查

问题排查与解决思路

我之前也碰到过类似的Azure App Service FTP部署后文件视图不一致的情况,结合你的描述,这几个方向应该能帮你定位问题:

1. 应用进程锁定导致旧文件没被替换

当App Service的应用进程在运行时,像web.config、程序集这类核心文件会被系统进程锁定,VS开启的「删除现有文件」选项根本没法彻底删掉或覆盖这些被锁定的旧文件。这就会出现WinSCP能看到新上传的文件,但Kudu和实际运行的实例还在加载旧的锁定文件的情况。

解决办法:

  • 部署前先停掉App Service:去Azure门户找到你的服务,点「停止」,等完全停稳了再做FTP部署,部署完再重启。
  • 或者用Kudu杀进程:进入Kudu的「Process Explorer」,找到dotnet.exe(或者你的应用对应的进程),点「Kill Process」,之后再重新部署一次。

2. 多实例场景下的同步延迟

如果你的App Service用的是标准层及以上的多实例部署,FTP上传的内容可能需要一点时间同步到所有实例。WinSCP连接的可能是已经同步好的实例,而Kudu刚好连到了还没同步的那个,就会出现两边内容不一样的情况。

解决办法:

  • 去Azure门户的「Deployment Center」>「Advanced」页面,点「Sync」手动触发实例内容同步。
  • 或者直接重启所有实例:在「Overview」页面点「Restart」,确保所有实例都重启并拉取最新的文件。

3. VS FTP部署的目标路径不对

虽然你选了部署到Azure App Service,但有时候VS的FTP配置可能默认指向了错误的路径(比如site根目录而非site/wwwroot),新文件传到了别的地方,但运行中的应用还是读wwwroot里的旧内容。不过你说WinSCP看的是wwwroot,这个可能性相对低,但可以验证下:

解决办法:

  • 检查VS发布配置里的FTP「站点路径」,确保是/site/wwwroot。
  • 在Kudu控制台执行dir site/wwwroot,把输出和WinSCP的文件列表对比,确认路径是否一致。

4. Azure自动回滚机制触发了

如果新部署后应用直接启动失败(比如你说的XML文件找不到的问题),Azure的自动回滚功能会自动恢复到之前能正常运行的版本,这时候Kudu显示的是旧版本文件,但WinSCP里可能还残留着新上传的文件。

解决办法:

  • 去Azure门户的「Deployment Center」>「Deployment History」看看有没有回滚记录。
  • 先把XML文件的读取问题修好(比如确认路径对不对、文件权限是不是可读),再重新部署,确保应用能正常启动,避免触发自动回滚。

额外验证小步骤

  • 在Kudu控制台输入cd site/wwwroot,再执行dir命令,把输出和WinSCP的文件列表对比,看看是不是确实有文件缺失。
  • 如果真的缺文件,手动用WinSCP重新传一遍缺失的XML和vue middleware相关文件,然后重启App Service,再验证能不能读到文件。

内容的提问来源于stack exchange,提问作者M0-3E

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:48:14