2013-02-23 311 views
2

我想知道Azure網站的生命週期 - 具體如下:
1. Azure網站在部署後是否立即自動啓動(global.asax application_start fire)?還是需要外部刺激 - http請求?
2.它何時何地被回收?
3.回收後,它是否自動啓動(全局application_start射擊)或需要外部刺激。蔚藍網站的生命週期

其實我需要有一個小的後臺作業(這也與某些傳入的HTTP請求接口),我打算來調用啓動。 我知道它可以在工作/網絡角色中完成,但我喜歡即時部署Azure網站。

PS。我打算爲azure網站使用Reserved實例。

感謝

+0

這不取決於Redmond是否在那裏續約SSL – KryptoniteDove 2013-02-23 12:32:30

回答

2

不,Windows Azure的Web站點不啓動它部署後自動網站。最重要的是,因爲從該網站實際上創建到您將內容放入其中可能非常相當。我通過創建一個Azure網站並部署了一個MVC 4應用程序來驗證這一點。該應用程序在全局應用程序啓動時設置了一個全局變量和當前日期時間,然後在默認控制器上輸出該日期時間和服務器上的當前日期時間。部署代碼後,我等了幾分鐘,然後調出頁面​​。這兩次幾乎完全相同,這意味着應用程序在控制器之前開始啓動。如果我部署了應用程序時會產生一些問題,那麼這些時間會因我等待的時間而減少。

因爲它沒有一個部署後立即旋轉起來你會需要一些外界刺激這樣做。

該網站可以被關閉,由於閒置5分鐘的任何地方高達20分鐘,這取決於服務器的繁忙程度,即使在預留實例,我相信。如果發生這種情況,下一個請求將通過在服務器上創建一個新的IIS進程來進行備份。發生這種情況時,不會立即使站點備份,而是等待請求進入。當然,您可以使用pingdom等服務,甚至可以使用Windows Azure移動服務調度程序一直向您的站點發送請求,以便保持它的生活。

你提到一個後臺作業,如果你能實際上一個網站做到這一點很容易我不知道。如果您使用新流程進行調整,我不確定這會起作用,並且如果您在同一流程中使用新線程完成此操作,那麼您仍然存在相同的問題,網站可能無法使用此工作。

我不知道你的目標是什麼當談論後臺作業與某些傳入的請求的接口,所以我不能說太多了這一點。如果後臺作業是在計時器上運行的東西,那麼您可能可以使用類似移動服務計劃程序的內容按計劃發送請求,以便代碼對其做出反應。

+0

這是正確的。它沒有自動啓動。但是,在保留實例中,應用程序似乎在閒置10小時後仍繼續運行。另外,你提出了一個關於建立新流程的有趣觀點。儘管我們無法訪問Azure網站上的許多IIS功能,但是,在保留實例上,如果通過調用process.start可以引發一個單獨的進程,那麼可能會很有趣。 – 2013-02-27 18:25:28

+0

當您移動到保留實例時,會刪除許多配額。我的印象是,空閒時間保持不變(在共享實例中,這是一種算法,取決於幾件事情需要5到20分鐘左右),但是如果你看到它保持活躍,那麼很好。這可能會改變,但您在該保留實例上運行的網站越多,不確定。 – MikeWo 2013-03-01 12:16:05

0

其實對#1,如果你的AlwaysOn的設置,它本質上模擬HTTP流量設爲您的應用程序,以保持它的工作進程啓動和運行網站可以自動啓動,你的應用程序升溫。您可以在doc page上閱讀有關該設置的更多信息。