我在三个不同的区域部署了一个应用程序服务(完全相同的代码)。我的服务需要在运行时同步一些文件,并将它们放在应用程序服务的本地缓存中。
为方便起见,我将文件放在wwwroot文件夹下。这是因为当发生新的部署时,我也希望它们也消失。
问题是,在三个App Services中的两个中,每次在wwwroot下创建一个文件夹时,App Domain都会重新启动,并且会破坏该服务的功能。对于第三项服务,App Domain根本不会重新启动,并且对它的请求运行良好。我知道wwwroot文件夹中的更改可能会触发应用程序域回收,但不知道为什么它仅在两个区域中发生。
是否存在任何可能影响行为以及重新启动App Domain的方式/方式的配置?
我还尝试在服务的web.config上添加以下内容,但该服务甚至无法加载。
<httpRuntime fcnMode="Disabled" />
我从以下线程获得了该信息:Azure Websites AppDomain many restarts
答案 0 :(得分:1)
部署几乎只做一件事:它将文件部署到wwwroot
文件夹中。它从不直接做任何事情来重新启动应用程序。
无论您使用Visual Studio部署(msdeploy),git / GitHub / etc部署,FTP还是使用Kudu Console手动复制某些文件,都是如此。
上面的关键字是直接 ,这意味着部署不会进行任何魔术API调用,而导致站点重启。但是,在某些情况下,将文件部署到wwwroot
的操作可能会导致某种形式的重新启动。从这种意义上说,部署是间接导致重新启动,但它实际上一无所知。由应用程序的运行时决定是否对文件更改通知做出反应,并执行其认为正确的操作。
有关更多详细信息,您可以参考此article。
您可以选择使用configSource
属性引用在进行更改时不会导致重新启动的外部配置文件。有关更多信息,请参阅General Attributes Inherited by Section Elements中的configSource
。