2011年2月15日 星期二

2-7 網站的佈署工具

        當網站在開發環境中建立與測試無誤之後,最終依舊是要佈署到遠端的IIS伺服器上。儘管在Visual Studio環境中,有虛擬IIS幫助我們可以不用在開發階段真的架設一個IIS伺服器,但是在實際佈署到遠端環境的伺服器上,依舊需要具有IIS以及.NET Famework 2.0的環境才行。

2-7-1 如何佈署您的網站

 

        您可以透過VS2005將正在編輯的網站佈署到遠端,如果是在WAN上面(例如您租用的虛擬主機)可以透過FTP或是FrontPage Server Extension的機制來佈署,如果是在LAN上面(例如佈署公司的EIP網站)則可以使用Copy的方式來進行。

        Visual Studio中,有一個非常好用的網站佈署工具.您可以從方案總管中,點選『複製網站』功能:

        將會出現底下的畫面,點選『連接至』,您會發現有四種佈署的模式:
        這個工具非常好用,幾乎包含了所有可能的佈署方式,您可以透過這個工具將網站佈署到LAN或是WAN上面的任何伺服器上。

        我們以本機IIS為例,您會發現,當您點選本機IIS上的某個虛擬目錄之後,該目錄中的檔案會出現在畫面的右方,左方則是我們正在開發的專案:
        您可以利用『同步化按鈕』為兩個位於不同位置的相同檔案資料作同步化動作,網站複製工具會自動檢查兩邊的檔案最後更新日期,自動進行同步(以最新的替換舊的)
您也可以在左右兩邊視窗選擇特定的檔案,然後按下『上傳按鈕』,或是『下載按鈕』,來更新遠端的檔案或是取回遠端的檔案。

2-7-2 資料庫的佈署問題

 

        當我們開發ASP或是ASP.NET程式時,資料庫路徑一直是一個很大的問題,如果是SQL Server,則必須利用Connection字串來設定資料庫位置,而在ASP.NET 2.0中,我們習慣上會把Connection字串建立在Web.Config中。

        而如果您是用Access作為資料庫,則資料庫的路徑,在DataSource控制項裡面,可以『~/App_Data/xxxxxxx.mdb』作為資料庫路徑,則您在佈署專案的時候,可以直接將資料庫一併佈署到遠端的網站上,這樣ASP.NET 2.0程式在抓取資料庫的時候不會有任何問題。
但是請注意,Server端的使用者『ASPNET』,必須對資料庫專案的/Add_Data資料夾(或是該資料庫)有存取的權限。否則會發生執行階段錯誤。
此外,ASP.NET 2.0內建的會員機制資料庫,是透過SQL Server 2005 Express建立的,會自動存放在App_Data資料夾中,您也可以直接複製到遠端伺服器上,ASP.NET 2.0就可以正常執行。

說明:
        有兩個需要特別注意之處,當您將SQL Server Express的資料庫複製到遠端站台上之後,遠端站台必須安裝有.NET FrameworkSQL Server Express才可確保正確無誤的執行。此外,當您的網站已經開始上線,千萬記得不要直接用開發環境中的資料庫蓋掉遠端的資料庫,不然遠端網站上的資料將會完全消失,因此用同步化是一個比較好的選擇。


2-7-3 佈署後的權限設定

 

        不管您用哪一種佈署方式,請注意在佈署之後,都要確定該資料夾的安全性設定:

        特別是ASP.NETInternet來賓帳戶,這兩個帳戶是一般ASP.NET開發人員時常忽略的,如果沒有設定足夠的權限,可能會出現底下的錯誤:

        這個錯誤很討厭,因為沒有足夠的訊息告知是哪邊有問題,事件檢視器中也只有一行『應用程式意外的終止』。因此,當您發現此錯誤訊息,請注意ASPNET帳號是否有足夠的權限,可以執行ASP.NET程式並且讀取相關的資料庫。

2-7-4 編譯模式的影響

 

        前面介紹的網站佈署動作,是直接從開發環境將網站原始檔案整個複製到遠端,但是這樣做在大型專案中不一定是很好的方式。

        因此我們在接下來要討論編譯模式與佈署之間的關係,後面會介紹到ASP.NET的兩種編譯模式,在大型的專案中,我們建議您先將整個網站,透過ASP.NET的公用程式『aspnet_compiler』進行編譯,編譯完成後再將編譯後的結果,佈署到遠端的網站上。

這樣的動作有兩個好處:
1.      確保網站的安全性與原始程式碼的版權。
2.      提昇網站執行速度。

我們接著來看網站的編譯模式,並介紹編譯模式與佈署之間的關係。

沒有留言:

張貼留言