Deployment 在不删除用户数据的情况下更新Web角色应用程序(Azure)

Deployment 在不删除用户数据的情况下更新Web角色应用程序(Azure),deployment,azure,asp.net-mvc-4,Deployment,Azure,Asp.net Mvc 4,我在Azure上有一个Web角色,有2个应用程序和1个虚拟目录。 1应用程序是后端,管理员可以在其中上载存储在虚拟目录中的文件(两个应用程序都可以访问虚拟目录) 每次我将新版本部署到Azure时,虚拟目录中所有上载的内容都会被删除-这是我不想要的 那么,如何在不删除所有用户生成的文件的情况下发布新版本呢? 我已经设法用WebDeploy更新了应用程序。但这仅适用于“主”应用程序,而不适用于第二个应用程序(配置为虚拟应用程序) 谢谢你不能。在部署时重新创建web角色。它也可能发生在硬件故障时,如果

我在Azure上有一个Web角色,有2个应用程序和1个虚拟目录。 1应用程序是后端,管理员可以在其中上载存储在虚拟目录中的文件(两个应用程序都可以访问虚拟目录)

每次我将新版本部署到Azure时,虚拟目录中所有上载的内容都会被删除-这是我不想要的

那么,如何在不删除所有用户生成的文件的情况下发布新版本呢?

我已经设法用WebDeploy更新了应用程序。但这仅适用于“主”应用程序,而不适用于第二个应用程序(配置为虚拟应用程序)


谢谢

你不能。在部署时重新创建web角色。它也可能发生在硬件故障时,如果实例出现故障,azure将重新部署您的系统。重新部署干净的虚拟机,然后将应用程序部署到该虚拟机。您永远不应该在web角色上存储要保留的数据。您需要使用blob存储等来存储要持久化的文件

由于您讨论的是虚拟目录,并在通常的Azure包部署机制之外使用web deploy更新应用程序,因此您的体系结构/应用程序可能更适合于持久化VM角色,而不是web角色。目前只能在Azure的预览版中使用


它们让您拥有持久性存储,可以在循环使用后继续使用。该存储实际上由blob存储支持,但它看起来像是PVM中的普通磁盘。

虚拟目录存储在“应用程序”分区上,该分区在每次升级时都会重新创建-有关详细信息,请参阅。因此,虚拟目录文件夹不是存储您希望在升级过程中保留的内容的正确位置。顺便说一句,“应用程序”分区只有1GB的空间,其中一些空间用于存储应用程序二进制代码,因此您可能会发现自己在某个时刻处于“磁盘已满”的状态


如果您想存储一些数据,而不介意在极少的情况下(如缓存结果)牺牲这些数据,您可以使用“本地资源”磁盘来存储这些数据,以便在就地升级和重新启动后仍能保存。但是,如果您的虚拟机崩溃,则不能保证它会被保留—为了达到这样的保存级别,您必须使用持久性存储,例如blob存储。

谢谢。遗憾的是,VM预览在奥地利还不可用。Azure网站可能也适用Azure网站不适用,正如您在我的要求中看到的(2个应用程序具有共享虚拟目录)-这对网站不起作用。