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

Azure WebApp配置Always On仍意外关闭,关机原因BinDirChangeOrDirectoryRename

解决Azure WebApp因BinDirChangeOrDirectoryRename意外停止的问题

我之前也碰到过类似的坑,BinDirChangeOrDirectoryRename这个关机原因本质是Web服务器检测到了bin目录或者应用根目录的文件/目录变化,直接触发了应用重启——哪怕你完全没手动修改过文件,很多后台操作都可能导致这个情况。下面是我亲测有效的排查和解决步骤:

一、先找自动变更的源头

  • 日志文件写进了敏感目录:很多开发者会把日志输出到bin目录或者网站根目录,比如某些日志框架默认就这么配置,这会直接触发目录变更检测。赶紧检查你的日志配置,把日志输出到Azure专门的日志目录D:\home\LogFiles,别往应用目录里写。
  • 第三方扩展/包在自动更新:你安装的WebApp扩展或者NuGet包可能在后台偷偷修改文件,比如一些监控工具、缓存插件。可以先临时禁用非必要的扩展,或者检查NuGet包的更新机制,改成手动更新试试。
  • 部署流程留了尾巴:如果用了持续部署(比如GitHub Actions、Azure DevOps),有时候部署后的清理脚本或者残留操作会修改文件。检查下部署流程,确保部署完成后没有多余的修改操作,比如别在部署后自动修改web.config或者bin目录下的文件。
  • 底层存储的元数据波动:Azure WebApp的存储偶尔会有同步延迟或者元数据变化,导致系统误判目录变更。这种情况可以先手动重启一次WebApp,然后观察会不会再出现问题。

二、调整目录变更检测的行为

要是实在找不到源头,可以直接修改配置来规避这个检测:

  • ASP.NET Framework项目:在web.config的system.web节点里添加这段配置,把变更检测的等待时间拉到一天(基本相当于禁用了检测):
    <httpRuntime waitChangeNotification="86400" maxWaitChangeNotification="86400" />
    
    注意,这么修改之后,你手动修改文件的话应用不会自动重启,得手动重启WebApp才会生效。
  • ASP.NET Core项目:在Program.cs里修改WebHost配置,直接关掉文件变更监听:
    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>()
                          .UseContentRoot(Directory.GetCurrentDirectory())
                          .ConfigureAppConfiguration((context, config) =>
                          {
                              // 关闭配置文件自动重载
                              config.AddJsonFile("appsettings.json", reloadOnChange: false);
                          })
                          .UseSetting(WebHostDefaults.WatchFilesKey, "false");
            });
    
    这样就能避免系统误判文件变更导致的重启。

三、用工具深挖细节

  • 开启详细诊断日志:在Azure门户的WebApp资源中,打开「诊断设置」,启用「应用服务日志」,把日志级别设为详细,然后去日志里查找关于目录变更的具体记录——比如哪个文件被修改了、修改时间是什么时候,这能帮你精准定位触发源。
  • 用Kudu工具查文件变化:访问https://<你的WebApp名称>.scm.azurewebsites.net,进入「Debug console」→「PowerShell」,执行以下命令:
    Get-ChildItem -Path D:\home\site\wwwroot -Recurse | Sort-Object LastWriteTime -Descending
    
    看看最新修改的文件有没有异常,说不定能找到蛛丝马迹。

最后提一句,虽然开了Always On,WebApp还是可能因为资源限制、平台更新等原因重启,但你这个明确是目录变更导致的,按上面的步骤排查应该能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:37:29