Windows Azure上的WebRole必须是无状态的吗?
我遇到了一个有趣的情况。我已通过仪表板重新启动我的Web角色。一旦WebRole启动并再次运行,我将远程桌面转到WebRole中,发现我发布的站点的整个文件夹都被删除并替换为包中的文件夹。只有那些文件夹之外的文本文件(如桌面上的)保存了下来 除非是整个驱动器E:在尝试重新启动时被擦除并重新安装。 因此,现在我的想法是,由于虚拟机可能会因崩溃或Microsoft维护而重新启动,作为开发人员,我们必须确保WebRole是无状态的,并且没有任何内容保存在本地,这是正确的吗Windows Azure上的WebRole必须是无状态的吗?,azure,azure-web-roles,Azure,Azure Web Roles,我遇到了一个有趣的情况。我已通过仪表板重新启动我的Web角色。一旦WebRole启动并再次运行,我将远程桌面转到WebRole中,发现我发布的站点的整个文件夹都被删除并替换为包中的文件夹。只有那些文件夹之外的文本文件(如桌面上的)保存了下来 除非是整个驱动器E:在尝试重新启动时被擦除并重新安装。 因此,现在我的想法是,由于虚拟机可能会因崩溃或Microsoft维护而重新启动,作为开发人员,我们必须确保WebRole是无状态的,并且没有任何内容保存在本地,这是正确的吗 非常感谢,计算虚拟机(无论是
非常感谢,计算虚拟机(无论是Web角色、工作者角色还是虚拟机角色)的本地磁盘存储不是持久的。它随时可能消失。数据中心有权在其认为必要时移动和重新创建您的虚拟机。这可能发生在硬件故障时,或者仅仅因为数据中心需要重新组织。发生这种情况时,您将丢失VM磁盘文件并返回部署映像。这一切发生只是时间问题。这是云计算实例的正常行为 如何保持云中数据的持久性?最好使用持久的托管服务,如Windows Azure存储或SQL Azure数据库。这为您提供了可依赖的存储,并提供了三重冗余支持 如果无法移动到持久性存储,另一种可能有效的方法(如果数据文件是只读的)是将数据文件添加到部署包中,并使用该包升级VM实例 此答案已从此URL移植: