存储要在Azure角色之间共享的静态文件

时间:2011-09-13 10:48:37

标签: c# asp.net vb.net azure

我正在尝试托管一些静态文件,供ASP.Net Web角色和单独的数据工作者角色访问,这些角色都在同一部署上运行(它们使用全局静态接口)。

但是,我不确定如何“托管”它们,我尝试通过HttpRuntime.AppDomainAppPath使用虚拟文件夹,但只有偶尔在调试模式下工作。这些文件似乎也没有被打包到VS和CSPack所做的部署包中(虽然这可能是一个单独的问题,是否也可以修复它?)

有问题的静态文件实际上是WordNet,我通过WordNet.Net使用它,如果这有什么不同。我还需要解决方案在云部署和模拟器中工作(如果可能的话)。

2 个答案:

答案 0 :(得分:2)

如果文件只是只读文件,则可以将它们放在Azure驱动器中,该驱动器本质上是存储在Page Blob中的NTFS格式的vhd(有关详细信息,请参阅here)。您的每个角色实例都可以挂载此驱动器的只读快照(并且一个实例可以一次获得写访问权限。)

将文件存储在本地磁盘上将不起作用,因为这些文件不会跨实例复制;每个实例都有自己的附加存储。

常见的模式是将内容存储在blob中,可能存储在ZIP文件中,然后在实例启动时将这些文件从Blob存储复制到本地磁盘。举个例子,你可以抓住Nate Totten的Azure Accelerator for Web Roles。您将看到ZIP文件复制技术的实际应用,因为它会提取整个网站并将它们解压缩到虚拟目录中。

答案 1 :(得分:0)

如果您未将“复制到输出目录”属性设置为“复制更新”/“始终复制”,则可能无法打包文件。