【问题标题】:Updating Web Role applications (Azure) without deleting user data在不删除用户数据的情况下更新 Web 角色应用程序 (Azure)
【发布时间】:2013-03-02 18:47:34
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: deployment azure asp.net-mvc-4


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      如果您想存储一些您不介意在极少数情况下牺牲的数据(例如缓存结果),您可以使用“本地资源”磁盘来存储在原地升级和重启后仍能存活的数据。但是,如果您的 VM 崩溃,则不能保证会保留它 - 例如,要获得这种级别的保留,您必须使用像 blob 存储这样的持久存储。

      【讨论】:

        【解决方案3】:

        由于您在谈论虚拟目录并使用 Web 部署在通常的 Azure 包部署机制之外更新应用程序,听起来您的架构/应用程序可能更适合持久性 VM 角色而不是 Web 角色。这些目前仅在 Azure 上提供预览版。

        http://www.windowsazure.com/en-us/home/scenarios/virtual-machines/

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

        【讨论】:

        • 谢谢。遗憾的是,奥地利尚不提供 VM 预览版。
        • Azure 网站也可能适合
        • Azure 网站不适合,正如您在我的要求中看到的那样(2 个具有共享虚拟目录的应用程序) - 这不适用于网站。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-13
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 2017-10-14
        • 2022-12-20
        • 1970-01-01
        相关资源
        最近更新 更多