Visual studio Visual Studio发布到Azure网站是否会导致整个网站被回收?

Visual studio Visual Studio发布到Azure网站是否会导致整个网站被回收?,visual-studio,asp.net-mvc-4,azure-web-app-service,Visual Studio,Asp.net Mvc 4,Azure Web App Service,我们最近在Azure中发布了一个新网站(即Azure网站),与新发布的网站一样,我们不得不在发布后不久部署一些调整来修复小问题 我们希望长期使用插槽,但目前不可能。因此,我们正在部署到实时站点。这是一个相当繁忙的网站,流量很大,显然希望将停机时间保持在最低限度 我们正在使用VisualStudio将文件更改发布到Azure,但我们注意到,即使我们发布了一个相对不重要的文件,整个网站也会崩溃,并难以恢复。我假设发布一个文件实际上只是在文件系统上替换该文件,但它的行为更像是为站点回收应用程序池(或A

我们最近在Azure中发布了一个新网站(即Azure网站),与新发布的网站一样,我们不得不在发布后不久部署一些调整来修复小问题

我们希望长期使用插槽,但目前不可能。因此,我们正在部署到实时站点。这是一个相当繁忙的网站,流量很大,显然希望将停机时间保持在最低限度

我们正在使用VisualStudio将文件更改发布到Azure,但我们注意到,即使我们发布了一个相对不重要的文件,整个网站也会崩溃,并难以恢复。我假设发布一个文件实际上只是在文件系统上替换该文件,但它的行为更像是为站点回收应用程序池(或Azure等效程序)。我发布的文件类型是Razor视图,因此通常不会导致回收

有人知道在VS Publish的掩护下到底发生了什么吗?是否有办法避免这种情况发生


谢谢。

我只是用一个基本干净的新MVC应用程序()尝试了一下,但没有看到这种行为。html视图有一个基于静态的命中计数,它会告诉我们应用程序或页面是否重新启动(或者特定页面是否重新编译)

然后测试是发布它,对其他视图(about.cshtml)进行更改,然后再次发布。当执行此操作并点击Index.cshtml时,计数会不断增加,并且速度会降到最低


如果您看到它在视图更改后重新启动,我建议在发布之前/之后使用查看site\wwwroot中的文件,并检查哪些文件具有较新的时间戳(例如,检查web.config、bin folder等)。

即使没有azure,也会发生这种情况。这就是.NET的工作原理。例如,当IIS检测到更改时,应用程序池将进行回收,因此必须重新编译。但对于DNX(我想,我可能错了),情况将不再如此。但是对于成熟的.NET框架来说,是的,这是会发生的,也是人们所期待的。根据我的经验,这完全不是真的。如果您编辑了web.config或部署了更新的程序集或其他特定文件类型,但修改单个CSHTML Razor文件不应导致站点重新加载,则会出现这种情况。该文件应“及时”动态解析和加载,即首次使用时。如果我在IIS中本地运行该站点,只需更改一个Razor文件,而不会导致整个站点重新加载,只需第一个使用该Razor文件的页面。对,它并不总是100%。。。但大多数时候:)我只是尝试直接通过Visual Studio Azure“资源管理器”保存文件,但这似乎没有反映出更改,因此我不确定那里发生了什么。我现在已使用FTP成功复制了文件。整个网站没有重新加载,相关页面需要额外几秒钟才能加载。应该如此。因此,VS Publish似乎不仅仅是一个文件替换。我很感兴趣,如果有人知道一个资源,可以解释VS发布到Azure的确切机制?很有趣。我试试看。我只能说我所看到的。FTP不会引起问题,VS Publish会(对于我来说,对于这个项目,在一个负载很重的站点上)。我将尝试在不同的测试站点上进行复制,但我可能无法重新创建确切的场景。这可能不是一个完整的应用程序回收,但有些事情正在发生。我不得不通过Azure门户重新启动Web应用程序,因为它没有恢复。重新启动后,站点加载速度相当快,因此我并没有引入错误导致应用程序失败。如果我发现什么,我会在这里更新。再次感谢。