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