2011-09-13 53 views
1

我想通过一个ASP.Net Web角色和一个单独的数据工作者角色来访问一些静态文件,这两个角色都在相同的部署上运行(它们使用全局静态接口)。但是,我不确定如何'主机'他们,我试过使用虚拟文件夹通过HttpRuntime.AppDomainAppPath,但它只有偶尔工作在调试模式。这些文件似乎也没有打包成VS与CSPack所做的部署包(尽管这可能是一个单独的问题,是否可以修复这个问题?)存储要在Azure角色之间共享的静态文件

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

回答

2

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

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

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

+1

经过一番捣鼓之后,我的工作非常好,这就是为什么接受这么晚了:) – Necrolis

0

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