Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Azure上的WebRole必须是无状态的吗?_Azure_Azure Web Roles - Fatal编程技术网

Windows Azure上的WebRole必须是无状态的吗?

Windows Azure上的WebRole必须是无状态的吗?,azure,azure-web-roles,Azure,Azure Web Roles,我遇到了一个有趣的情况。我已通过仪表板重新启动我的Web角色。一旦WebRole启动并再次运行,我将远程桌面转到WebRole中,发现我发布的站点的整个文件夹都被删除并替换为包中的文件夹。只有那些文件夹之外的文本文件(如桌面上的)保存了下来 除非是整个驱动器E:在尝试重新启动时被擦除并重新安装。 因此,现在我的想法是,由于虚拟机可能会因崩溃或Microsoft维护而重新启动,作为开发人员,我们必须确保WebRole是无状态的,并且没有任何内容保存在本地,这是正确的吗 非常感谢,计算虚拟机(无论是

我遇到了一个有趣的情况。我已通过仪表板重新启动我的Web角色。一旦WebRole启动并再次运行,我将远程桌面转到WebRole中,发现我发布的站点的整个文件夹都被删除并替换为包中的文件夹。只有那些文件夹之外的文本文件(如桌面上的)保存了下来

除非是整个驱动器E:在尝试重新启动时被擦除并重新安装。

因此,现在我的想法是,由于虚拟机可能会因崩溃或Microsoft维护而重新启动,作为开发人员,我们必须确保WebRole是无状态的,并且没有任何内容保存在本地,这是正确的吗


非常感谢,

计算虚拟机(无论是Web角色、工作者角色还是虚拟机角色)的本地磁盘存储不是持久的。它随时可能消失。数据中心有权在其认为必要时移动和重新创建您的虚拟机。这可能发生在硬件故障时,或者仅仅因为数据中心需要重新组织。发生这种情况时,您将丢失VM磁盘文件并返回部署映像。这一切发生只是时间问题。这是云计算实例的正常行为

如何保持云中数据的持久性?最好使用持久的托管服务,如Windows Azure存储或SQL Azure数据库。这为您提供了可依赖的存储,并提供了三重冗余支持

如果无法移动到持久性存储,另一种可能有效的方法(如果数据文件是只读的)是将数据文件添加到部署包中,并使用该包升级VM实例

此答案已从此URL移植: