2015-07-10 40 views
0

是否可以將自定義.NET模塊部署到我自己的「App Service Plan」(運行我的Azure Web Apps的計算機)?Azure Web Apps(以前的網站):自定義IIS模塊?

下面的問題讓我想到了這個問題:我正在考慮做一些奇特的緩存來加速Web應用程序。我想到的緩存邏輯將在進行中,但緩存的數據量相當大,建立起來速度很慢。由於在發出任何請求之前必須進行構建,因此每次應用程序池回收後,我的web應用程序都需要很長的熱身時間。

緩存代碼本身很少會被更新,因此將這部分分解到IIS模塊中可能是有利的,因爲應用程序池的回收會將緩存的數據留在內存中。

但是,我強烈懷疑這對於Azure Web應用程序來說是不可能的 - 但我認爲謹慎的做法是讓社區確認。

回答

0

一般來說,如果你想有一個緩存,你就可以存儲高速緩存數據的更好的地方,比如在Redis cache甚至在Azure Table中存儲(這是真的fast如果你只是使用主鍵查找數據)。

哎呀,你甚至可以在本地磁盤上存儲緩存文件。

由於各種原因,包括操作系統更新,Azure Web App升級等,Azure Web Apps可以在任何時間點移動到另一臺機器。當發生這種情況時,您將丟失存儲在內存中的任何緩存,這意味着你需要重新生成一切。

如果生成緩存需要一段時間並會阻止用戶,那麼您可能不想訪問內存中的緩存路由。

+0

我想要的不僅僅是一個簡單的鍵值緩存,所以它可能不會是redis或表存儲。但是,爲了降低熱身成本,可能需要進行非處理(事實上是機器外)。 – John

1

絕對有可能創建自定義的IIS模塊並將它們與您的單個Web應用程序一起部署。您可以將該模塊與您的Web應用程序代碼(即/ bin目錄中的DLL文件)捆綁在一起,並將其配置到應用程序的web.config中。更多的信息在這裏:https://msdn.microsoft.com/en-us/library/vstudio/ms227673(v=vs.100).aspx

當然,你需要做這個捆綁所有你的個人網絡應用程序。在你的問題中,你特別提到了應用程序服務計劃,並且沒有一種方法可以獨立於你的Web應用程序自動包含和註冊它們。

+0

我相信模塊可能不會幫助我。看起來,這些應用程序總是針對相應應用程序池中的特定Web應用程序運行。我正在尋找的東西不會像web應用程序的應用程序池重新啓動(或至少不會經常)。 – John