2010-04-28 224 views
3

可能重複:
How to deploy an ASP.NET Application with zero downtime的ASP.Net應用程序安全部署

Duplicate Question

大家好,

我有我想要一個asp.net應用安全部署(儘可能縮短停機時間)。我喜歡做類似blue green deployment的事情,但不需要第二個Web服務器。

所以,我知道我可以使用負載平衡等,但我需要一個快速和便宜的方法。我正在考慮做類似的事情:

  • 在IIS中設置另一個網站(原件的副本),目前我使用主機標頭來指引網站之間的流量)。
  • 我可以在本地查看新網站,直到網站完全在線(由於NHibernate啓動以及需要一段時間的各種其他高強度任務)。
  • 一旦站點2完全啓動,我會改變主機標題,給我一個更小的停機時間。

所以我的問題是。有沒有人做過這樣的事情?在更改主機頭時,IIS會重新啓動我的應用程序池或應用程序(使之無用)?任何其他選項?

感謝您的幫助。

圭多

+0

的確是這樣,因此最後的職位,並在這個職位「複製問題」的頂部的編輯鏈接。如果你可以關閉Mauricio(如果你有權力),那麼這將非常棒 – gatapia 2010-04-29 22:11:36

回答

2

如果你摸的web.config,您的應用程序池將回收。即使這樣,當你重定向到新站點時,它也處於不同的路徑中,因此會創建一個新的會話對象(如果使用的是會話)。怎麼樣的cookie?你會使用根路徑來設置它嗎?否則,Cookie將不會在這兩個網站之間共享。

簡單的解決方案是實際取下網站(app_offline.htm),複製文件並可能執行熱啓動。

http://learn.iis.net/page.aspx/688/using-the-iis-application-warm-up-module/

你有沒有考慮ARR?

http://www.iis.net/download/applicationrequestrouting

+0

Hi Raj, 對你的帖子的一些評論:我沒有碰到web.config。我不介意在交換機上丟失會話cookie數據(我的應用程序 實際上不使用會話)。第一個鏈接 - 我在IIS6 :(。第二個鏈接 - 這只是負載平衡不是嗎? – gatapia 2010-04-28 03:58:21

+0

是的第二個是負載平衡(你可能可以在一臺服務器上完成)*新行* IIS熱身腳本從來沒有使用它)http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx *新行*更改主機頭不應該導致應用程序池回收。做一些事情,如觸摸web.config或更改bin目錄中的文件將*新行*如果您的網站是在如此沉重的負載下,不是應該做負載平衡嗎?;-) – 2010-04-28 04:08:51

+0

'你不應該做負載平衡' - 是的,這將是合乎邏輯:)讓我們只是說我不能賣出這個想法。 我發現在這個線程我目前正在調查建議: http://stackoverflow.com/questions/148084/how-to-deploy-an-asp-net-application-with-zero-downtime 如果這些工作我將把這個問題作爲重複來解決。 – gatapia 2010-04-28 04:55:42