我在托管网站的云服务上运行 2 个 azure 实例。
我将文件上传到文件夹,并保存在其中一个实例中。当我尝试加载它时,如果 azure 选择了错误的实例,它不会找到该文件。我有什么选择来解决这个问题?
我想将文件保存在 blob 存储中,但如果我能以这种方式保存它,它将为我节省一些时间。
我在托管网站的云服务上运行 2 个 azure 实例。
我将文件上传到文件夹,并保存在其中一个实例中。当我尝试加载它时,如果 azure 选择了错误的实例,它不会找到该文件。我有什么选择来解决这个问题?
我想将文件保存在 blob 存储中,但如果我能以这种方式保存它,它将为我节省一些时间。
正如您在问题中提到的,您应该将其保存在 blob 存储中。有几个原因:
stateless by nature
. 这意味着一旦 VM 出现故障,您在该 VM 上执行的任何操作(例如保存文件等)都会消失。另一方面,Blob 存储是持久存储,可通过简单的 http 协议访问。因此,当用户上传文件时,您将其保存在 blob 存储中。当用户请求它时,您只需从 blob 存储中提供 blob。
更新 - 基于以下评论
关于您的第一条评论,您仍然可以使用 blob 存储。您可以做的是创建一个 blob 容器来保存临时文件,一旦用户完成所有步骤,您就可以将它们移动到另一个容器(我们称之为永久容器)。要将 blob 从一个容器复制到另一个容器,您甚至不必将 blob 下载到 VM。Windows Azure 支持服务器端异步复制,它将 blob 从一个容器复制到另一个服务器端。
关于您的第二条评论,我认为您无法更改负载平衡策略。有一些东西Application Request Routing (ARR)
可以实现粘性会话,但不幸的是我不熟悉它。你可能想调查一下。
您正在使用虚拟机,对吗?如果切换到 Azure 网站是一种选择,那么您的应用程序文件/图像将位于一个共享网络驱动器上,始终可供所有实例使用。http://azure.microsoft.com/en-us/documentation/videos/web-sites-internals-and-the-file-system/