2012-02-14 51 views
2

有一個網站的一部分我維護,有成千上萬的頁面是相當靜態的。他們是ASPX頁面,但他們沒有代碼隱藏。他們提到一個母版頁,他們有<asp:Content>標籤,所以他們確實需要服務器端處理。Windows Azure Blob存儲中的主機ASPNET頁面?

它位於Azure中,但由於頁面數量的限制,該站點需要永久構建和更新。似乎應該可以將所有這些頁面上傳到blob存儲並從那裏引用它們。他們變化相對很少。

我想我可以將其從相對URL改爲完全顯式的URL,對嗎?

<%@ Page Title="WhateverPage" Language="C#" MasterPageFile="~/MyMasterPage.master" %> 

然後在網站的其他地方有一個指向該頁面的鏈接,指向該頁面在blob存儲中的URL鏈接。

這似乎是可行的,或者有沒有我想不到的障礙?

回答

1

將靜態內容移動到blob存儲器效果很好。只要確保將您的靜態內容放置在公共容器中。而且,當你處於這個狀態時,你應該考慮將所有靜態圖像,樣式表等移動到blob。

最大的任務將經歷所有內容,修改和其他標籤的靜態頁面,指向明確Blob存儲,如果需要的話(因爲也許您存儲的圖像在不同的存儲帳戶)。

您將獲得一些好處,以及:

  • 較小的部署軟件包(如你提到的話)
  • 沒有能力重新部署更新單個頁面或圖像,只買上傳新項目Blob存儲
  • IIS和您的計算實例

一個需要注意的需求較少,但:你不能有一個「默認」頁面。也就是說,如果您只指向http://mywebsiteinblobstorage.com,則不能指定默認對象(如default.html)。

+0

這肯定會是一個任務,但我可以走這條路。有一件事仍然困擾着我。在對母版頁的引用中,我將不得不放置一個明確的URL。我部署到三個不同的Web角色之一。我們有一個測試站點和一個生產站點。測試站點具有一個Web角色,生產站點具有一個用於分級的角色和一個用於活動站點的角色。所以我不能在那裏硬編碼一個URL。 – jrichview 2012-02-15 21:27:14

+0

你不能只是重定向HTTP請求到一個新的URL,因爲沒有ASPNET Web服務器響應這些請求。我相信你會不得不從blob中讀取文件內容?自定義HTTP模塊? – jrichview 2012-02-16 18:38:25

+0

好吧,那麼這裏是我的解決方案:http://jvshangout.wordpress.com/2012/02/17/virtualpathprovider-for-windows-azure-hosting-aspx-web-pages-in-blob-storage/ – jrichview 2012-02-17 19:07:39