2011-09-13 78 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

如果您尚未將「複製到輸出目錄」屬性設置爲「複製更新」/「始終複製」,則文件可能未被打包。