Azure 应用服务 - 将新文件添加到 wwwroot 文件夹时应用域重新启动

Azure App Service - App Domain restarted when adding new files into wwwroot folder

我在三个不同的区域部署了一个应用服务(完全相同的代码)。我的服务需要在 运行 时间同步一些文件,并将它们放入应用服务的本地缓存中。

为方便起见,我将文件放在了 wwwroot 文件夹下。这是因为当发生新的部署时,我希望它们也消失。

问题是,在三个应用程序服务中的两个中,每次在 wwwroot 下创建一个文件夹时,应用程序域都会重新启动并破坏服务的功能。对于第三个服务,App Domain 根本没有重新启动,并且对它的请求运行良好。我知道 wwwroot 文件夹中的更改可能会触发 App Domain 回收,但不明白为什么它只发生在两个区域。

是否有任何配置可能会影响行为并how/when App Domain 重新启动?

我还尝试在我的服务的 web.config 中添加以下内容,但该服务甚至无法加载。

<httpRuntime fcnMode="Disabled" />

我从这个帖子中获得了该信息:Azure Websites AppDomain many restarts

部署几乎只做一件事:将文件部署到 wwwroot 文件夹中。它从不直接重启应用程序

无论您使用 Visual Studio 部署 (msdeploy)、git/GitHub/etc 部署、FTP,还是使用 Kudu 控制台手动复制一些文件,都是如此。

上面的关键词是直接,这意味着部署不会进行任何导致站点重新启动的神奇 API 调用。但是,在某些情况下,将文件部署到 wwwroot 的行为可能会导致某种形式的重启。从这个意义上说,部署是 间接地 导致重启,但它真的对此一无所知。这取决于应用程序的 运行时 对文件更改通知做出反应并做它认为正确的事情。

更多细节,你可以参考这篇article

您可以选择使用 configSource 属性来引用外部配置文件,这些文件在进行更改时不会导致重新启动。有关详细信息,请参阅 General Attributes Inherited by Section Elements 中的 configSource