2012-06-04 48 views
1

我正在Windows azure上運行一個應用程序,MVC視圖需要動態,我開始將它們作爲數據庫中的記錄存儲,但我非常希望將它們移動到一個物理位置。Windows Azure - 從單獨的workerrole訪問webrole本地存儲

我的理念是通過代碼創建物理文件......它工作得很好,並大大加快了頁面加載速度。這當然是在我意識到這些文件只在角色可用期間纔可用

接下來,我看了一個啓動任務,以便在角色啓動時創建文件 - 但是後來我意識到任何單獨的實例都沒有除非我監控數據庫的變化,否則不會同步。

所以我從一個啓動任務移動到角色的run方法中,每10分鐘檢查一次數據庫以查看是否發生了更改。問題在於,這似乎會扼殺應用程序(至少在熱身階段)。

理想情況下,我想將運行函數移動到它自己的工作者角色,它可以坐在那裏並將文件推送到Web角色實例,但我不確定我將如何去訪問Web角色本地存儲工作者角色。有人可以告訴我這是否可能嗎?並希望指出我正確的方向來實現這一目標?

只是爲了澄清什麼,我試圖實現

- 查看在用戶界面上創建Web角色運行並存儲在數據庫 - 獨立的Web角色(前端)與virtualpath提供商指着查看客戶方應用程序請求本地存儲(本地資源) -separate worker角色創建View結構並將其加載到客戶端Web角色本地存儲

+0

我非常關心創建一個基於本地存儲的解決方案,它可能隨時消失。我會考慮先考慮一些不依賴本地存儲的東西,如果它是必須的,那麼將代碼保存在本地存儲所在的同一臺機器中,同時將機器大小更改爲較大的虛擬機。這總體上不是一個好的設計。 – AvkashChauhan

+0

我對本地存儲的理解是,它至少(像)角色本身一樣持久(即,如果角色丟失或被回收,則需要重新創建本地存儲,但角色也可以在角色中完成作爲一個啓動任務)將文件存儲在一個更持久的位置將是很好,但據我所見blob存儲只能通過http/https訪問,而不是通過文件路徑,這對我的虛擬路徑提供商有負面影響(我試過了),感謝您的輸入:)設計是一項正在進行中的工作。 –

+0

,然後我發現天藍色的雲驅動器,並想知道它一直是我的一生。 –

回答

0

我相信您具有完全相同的可能性,就像在使用單獨的Windows Server 2008 R2實例時一樣。

我最好猜測的是創建一個Web服務或任何可以從外部位置調用的標準應用程序,它在本地磁盤上創建實際文件(從傳遞給它的參數中)並調用此Web服務定期從工作者角色。

當然還有很多其他的解決方法,但我認爲沒有任何標準化的方式可以從Azure中的單獨角色訪問本地存儲。

+0

有道理。一個Web服務可以工作。我已經看到了從zip文件夾中提取視圖的virtualpathprovider實現,因此我可以在單獨的角色實例上創建視圖創建/文件夾結構並將其壓縮,然後將zip文件夾下載到本地存儲並直接從那裏提供視圖。謝謝 –

相關問題