更新:2007 年 11 月
部署 ASP.NET 應用程式非常簡單。您需要將在開發電腦上建立的應用程式檔案複製至即將裝載您應用程式的 Web 實際執行伺服器 (Production Server)。您可以使用 XCOPY 命令列工具或慣用的 FTP 應用程式,將檔案從一個位置複製至另一個位置。如需一般部署的詳細資訊,請參閱 .NET Framework 部署的基本概念。
注意事項: |
|---|
如果不使用 .NET Framework 所有版本都支援的 XCOPY 命令列工具,您可以使用位於 %SystemRoot%\Microsoft.NET\Framework\第 2 版或更新版本\Aspnet_compiler.exe 的新 .NET Framework 2.0 工具,以編譯和部署 Web 應用程式。如需詳細資訊,請參閱 ASP.NET 編譯工具 (Aspnet_compiler.exe)。 |
您要跨 Web 應用程式共用的組件 (例如,包含自訂 ASP.NET 伺服器控制項的組件),應部署至遠端伺服器上的全域組件快取 (GAC) 中。
如果您部署的應用程式包含本機伺服器上全域組件快取中註冊之自訂元件的參考,則該元件不會和應用程式一起部署至遠端伺服器。您需要在遠端伺服器的全域組件快取中安裝元件,或者在部署之前將自訂元件複製至本機 Web 應用程式的 Bin 資料夾中。
如需詳細資訊,請參閱全域組件快取。如需組件的詳細資訊,請參閱使用組件設計程式。
部分部署工具 (例如,Visual Web Developer) 具有可以輕鬆部署應用程式的工具。
必要條件
若要完成這個逐步解說,您需要:
.NET Framework。
現有的 ASP.NET 網站。如果您已經設定了這類的站台,即可使用該站台做為此逐步解說的起點。否則,如需建立虛擬目錄或站台的詳細資訊,請參閱 HOW TO:在 IIS 5.0 和 6.0 中建立和設定虛擬目錄。
可以使用檔案路徑或 UNC 路徑存取的目的端。
注意事項: |
|---|
這個逐步解說假設您未在使用設計工具 (例如,Visual Web Developer 或 Visual Studio)。 |
準備
如果您是在部署大型網站且您想要讓目標網站在您複製檔案時離線,請使用以下程序。
若要在部署前讓 Web 應用程式離線
建立名為 App_offline.htm 的檔案,並將其置於目標網站的根目錄中。
將易記的訊息置於 App_offline.htm 檔,以讓用戶端知道您正在更新網站。
如果 App_offline.htm 檔存在,則對網站的任何要求都將重新導向至該檔案。
重要事項:請記得在完成複製檔案後移除 App_offline.htm 檔。
當部分檔案類型和資料夾發生變更時,應用程式定義域會重新啟動。您可以設定在重新啟動應用程式定義域之前,應用程式等待另一個檔案變更告知的秒數。
若要將應用程式定義域重新啟動的次數降到最低
開啟 Web 應用程式的 Web.config 檔。如果您沒有 Web.config 檔,則您可以使用下列程式碼建立一個。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> </system.web> </configuration>如需詳細資訊,請參閱 ASP.NET 組態檔。
將 httpRuntime 項目 (ASP.NET 設定結構描述) 項目加入 Web.config 檔,並將 waitChangeNotification 屬性設為超過兩個檔案複製變更告知更新之間的任何秒數。例如,httpRuntime 項目可能看起來與下列程式碼相同。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <httpRuntime waitChangeNotification="5" /> </system.web> </configuration>將 maxWaitChangeNotification 屬性加入 httpRuntime 項目,並將其設為重新啟動應用程式定義域之前,自第一個檔案變更告知開始等待的最大秒數。請將其設為超過完成任何檔案複製處理序所需之時間長度的數值。檔案變更告知根據這個屬性的值和 waitChangeNotification 屬性進行組合。例如,httpRuntime 項目可能看起來與下列程式碼相同。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <httpRuntime waitChangeNotification="5" maxWaitChangeNotification="10" /> </system.web> </configuration>
若要從命令列使用 XCOPY 部署 ASP.NET Web 應用程式
按一下 [開始],再按一下 [執行]。
在 [執行] 對話方塊中的 [開啟] 方塊中,鍵入 cmd,然後按一下 [確定]。
請在命令提示字元中輸入下列命令:
xcopy /I /S<source path> <destination path>在這個命令中,<source path> 是 Web 應用程式的完整路徑,<destination path> 是部署應用程式之目錄的完整路徑。
注意事項:利用 XCOPY 工具時必須使用實體目錄名稱。不可使用虛擬目錄名稱。
/S 參數會複製所有子目錄及其包含的檔案。
/I 參數表示要複製目錄。如果目的資料夾不存在,則 XCOPY 會建立一個目的資料夾。
下列範例命令會將 c:\inetpub\wwwroot\devapp 目錄的所有檔案複製至 d:\publicsites\liveapp 目錄。
Xcopy /I /Sc:\inetpub\wwwroot\devapp d:\publicsites\liveapp命令可能會暫停,讓您回答問題 (例如,「您要覆寫 filename 嗎? (是/否/全部)」,讓您可以鍵入答案。
您可以使用 XCOPY /EXCLUDE 選項,以在複製時排除子目錄或具有特定副檔名或檔名的檔案。如需詳細資訊和參數,請參閱 [開始] 功能表中 [說明及支援] 視窗的 [Xcopy],或在命令列鍵入 xcopy /?。
若要從命令列部署或更新 ASP.NET Web 應用程式中的個別檔案
按一下 [開始],再按一下 [執行]。
在 [執行] 對話方塊中的 [開啟] 方塊中,鍵入 cmd,然後按一下 [確定]。
請在命令提示字元中輸入下列命令:
xcopy <source path> <destination path>在這個命令列中,<source path> 是要複製之原始程式檔 (Source File) 的完整路徑,<destination path> 是放置所複製檔案之目錄的完整路徑。
下列範例命令會從一個磁碟機的 \Bin 目錄將單一 DLL 複製至另一個磁碟機的 \Bin 目錄。
Xcopy c:\inetpub\wwwroot\devapp\bin\sampleAssembly.dll d:\publicsites\liveapp\bin下列範例命令會從一個磁碟機的 Bin 目錄將所有 DLL 檔案複製至另一個磁碟機的 Bin 目錄。
Xcopy c:\inetpub\wwwroot\devapp\bin\*.dll d:\publicsites\liveapp\bin命令可能會暫停,讓您回答問題 (例如,「您要覆寫 filename 嗎? (是/否/全部)」,讓您可以鍵入答案。
請參閱
工作
逐步解說:在 IIS 6.0 中建立 ASP.NET Web 應用程式根目錄