2008-10-02 114 views
4

在過去的幾個月裏,我一直在爲我的大學寫一個內部網站,裏面有很多關於學生的報告。這一切都很順利,但每週一次(ish)我不得不去IT讓他們登錄到IIS停止應用程序池,清除網站文件夾,清除臨時的asp.net緩存,並用新的一個。不是一個大工作,但我寧願自己做我想做的時候。ASP.NET部署

我對ASP.NET部署知之甚少,IIS有沒有辦法讓我自己更新網站(如果可能,讓系統保持活躍狀態​​)?上次我看到這個,我想我發現文件被鎖定在網站目錄中。

不同的發佈選項實現了什麼?

回答

2

爲什麼要停止應用程序池並清除臨時文件?它可以很好地覆蓋網站本身的文件。

我唯一要做的就是進入bin目錄並清除所有隨機命名的.dll文件。

Visual Studio也有它自己的部署選項,您可以給UNC路徑,它將刪除舊文件並複製新版本的站點。它甚至會爲你提供一個app_offline.html。

-1

我經常在計劃維護期間更新我的網站,通常在工作時間之外。因此,晚上或週末是關閉短時間服務的最佳時間,並更新網站。安排維護,讓每個人都知道他們將是一個宕機時間。

+0

問題不在於什麼時候,但最簡單和最不痛苦的方法是什麼。 – Geoff 2008-10-02 01:31:54

1

您可以在IIS中激活此Web的FrontPage擴展。他們處理整個部署和更新。我們讓他們爲每個網站激活,以方便維護。

Visual Studio可以直接連接並部署到啓用Frontpage-Extension的網站,所以應該沒有問題。

1)發佈形式VS到本地目錄,然後上傳(通過FTP)服務器:

2

其實,我有2種形式的工作。我正在使用這種方式來使用filezilla ftp客戶端,並且不要傳輸web.config文件。

2)預編譯網站(從ccnet),壓縮它,傳輸到服務器,連接到服務器(遠程桌面)並執行一個.bat文件,將應用程序置於離線模式(App_Offline.htm),備份並解壓縮版。我們計劃爲管理員創建第二個網站,以避免手動連接並執行.bat。

+0

有關它的任何腳本? – Kiquenet 2011-02-14 09:54:49

+0

@alhambraeidos目前不在... – Zote 2011-02-14 12:15:47

0

您可以使用Beyond Compare等程序連接到您的服務器的FTP(您可以指向網站文件夾)並上傳新文件。您可以比較文件,逐行比較並僅上載更改的文件。對我來說工作得很好。

1

如果您正在使用該路線,則可以覆蓋存在的文件。就我個人而言,我有Cruise Control.NET,我喜歡它。我有顛覆設置,所以我們的開發和登臺系統會自動更新,每次提交到svn。然後,爲了生活,我會標記需要的任何內容,並更改配置以從Live網站的新標記中拉取並強制構建它。它工作得很好,你應該檢查出來。它還會編譯你的.cs文件,如果你的代碼不能生成,就不會部署。我相信傑夫正在使用它與stackoverflow。

0

要在我們的IIS服務器上安裝ASP.net應用程序(不需要Visual Studio),我們從版本控制中檢出項目代碼,然後在項目文件上運行msbuild.exe。您可以在.Net框架文件夾中找到msbuild.exe,例如:

C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0。50727 \

我們必須做的唯一的事情是整個目標定義副本從開發機器,通常是存儲在一個:

C:\ Program Files文件\的MSBuild \

它的安全將.csproj/.vbproj文件保留在Web文件夾中,因爲IIS不會提供它們,因爲在該機器上不會爲它們定義MIME類型,但是如果您願意,可以將其刪除。

這個設置也很容易編寫腳本,這是一個獎勵。