2011-04-16 49 views
1

我在哪裏工作,我們每天晚上都會向系統發佈錯誤修復,當我們知道我們的客戶沒有使用該系統時。如何在運行該Web應用程序時將應用程序部署到IIS

試圖向更好的服務邁進一步我想在應用程序運行時部署到IIS。

想到的解決方案是設置兩個不同的IIS應用程序,並在使用腳本進行部署後切換它們。但我不會嘗試這一點,因爲我們在繁忙的工作時間內不需要任何複雜的工作。

有沒有人有這方面的部署經驗?

感謝

回答

3

不管你使用PHP,ASP,ASP.NET等有IIS上部署事務沒有原生支持。

最簡單的方法是將有兩個物理文件夾和(可選的兩個網站 - 一個生產,一個測試)在Web服務器上,例如:

 
c:\websites\myapp\dep1 
c:\websites\myapp\dep2 

開始時,您的網站將有它的物理路徑指向c:\websites\myapp\dep1

當您部署最新版本時,您將部署到c:\websites\myapp\dep2。完成後,只需將生產站點的物理路徑切換到該文件夾​​即可。這意味着,如果新代碼因任何原因失敗,您仍然擁有原始網站並可以回退原來的網站。

下次您執行部署時,您將部署到c:\websites\myapp\dep1,完成後將生產站點切換到該文件夾​​。

您可以選擇將測試站點指向您正在部署的文件夾,以便在切換生產站點之前確保站點正常工作。

這可能都是腳本。

下面是一些相關的閱讀,可能會感興趣:

Publishing/uploading new DLL to IIS: website goes down whilst uploading

Is smooth deployment possible with componentized ASP.NET MVC apps?

羅布科納也有一個很好的博客文章對缺乏ASP一個體面的部署故事.NET應用程序。你應該採取拖網通過評論其中一些是非常有見地:

ASP.NET Deployment Needs To Be Fixed

Getting Constructive On ASP.NET Deployment

+0

這一戰略,在腳本PowerShell和使用ARR:https://github.com/ yosoyadri/IIS-ARR-Zero-Downtime/blob/master/DeployLocalFarm.ps1 – Yosoyadri 2013-03-04 11:13:22

+0

@Adrian不錯。值得注意的是,Get-NetIPAddress和New-NetIPAddress cmd-let只能在Windows 8/2012中使用。 – Kev 2013-03-04 11:56:11

+0

謝謝@Kev,我沒有意識到這一點。在將腳本放在一起來創建農場,節點,IPS和所有需要的設置之前,我放棄了。雖然所有的功能都在那裏 - 如果有人想冒險並做到這一點 - 腳本中的Deploy功能並不依賴於它們中的任何一種,並且可以在早期版本的Windows上運行,而是假定以前已經設置了所需功能,手動或通過腳本。 – Yosoyadri 2013-03-04 18:23:55

相關問題