執行 ASP.NET 1.1 與 IIS 6.0

雖然 Windows Server 2003 同時包含 IIS 6.0 和 ASP.NET 1.1,但預設會停用這些元件。 本白皮書說明如何啟用 IIS 6.0 和 ASP.NET 1.1,並建議數個組態設定,以從 IIS 和 ASP.NET 取得最佳效能。

適用於 ASP.NET 1.1 和 IIS 6.0。

ASP.NET 1.1 隨附於 Windows Server 2003,其中也包含最新版本的 Internet Information Server (IIS) 6.0 版。 IIS 6.0 和 ASP.NET 1.1 的設計目的是要順暢地整合,而 ASP.NET 現在預設為新的 IIS 6.0 背景工作進程模型。

預設不會安裝 ASP.NET 1.1

不同於舊版 Microsoft 的伺服器操作系統,預設不會啟用 Internet Information Server (IIS) ;也不 ASP.NET 1.1。 啟用 IIS 有兩個選項:

啟用 IIS,選項 #1 - 設定伺服器精靈

Windows Server 2003 隨附新的「設定伺服器精靈」,以協助您以所需的模式正確設定伺服器。

若要啟動精靈 - 請注意,若要執行精靈,您必須以系統管理員身分登入 - 請移至:開始 |程式 |系統管理工具,然後選取 [設定您的伺服器]。

選取之後,您應該會看到 [設定伺服器精靈] 開啟畫面:

Windows 設定伺服器精靈的螢幕快照。下一個按鈕會反白顯示。

按兩下 [下一步 >] ':

[設定伺服器精靈] 之 [Windows 初步步驟] 畫面的螢幕快照。下一個按鈕會反白顯示。

按兩下 [下一步 >]

Windows 設定伺服器精靈畫面標題為伺服器角色的螢幕快照。功能表會顯示醒目提示的應用程式伺服器選項。

在此畫面上,您必須選取 [應用程式伺服器 (IIS],ASP.NET) 作为要设定的选项。

點選 [下一步 >] 。

Windows 設定伺服器精靈畫面的螢幕快照,標題為應用程式伺服器選項。已核取 [啟用 ASP.NET] 方塊。

選取將伺服器設定為應用程式伺服器之後,會顯示此畫面,提示應該安裝哪些其他功能。 預設不會選取任一選項。 若要自動啟用 ASP.NET,您必須選取 [啟用 ASP.NET]。

點選 [下一步 >] 。

Windows 設定伺服器精靈畫面的螢幕快照,標題為選取專案的摘要。下一個按鈕會反白顯示。

此畫面會顯示要安裝的選項。

點選 [下一步 >] 。

[設定伺服器精靈] 畫面的螢幕快照。套用選取項目狀態列會顯示。

當您選取的選項正在安裝時,您會看到此畫面。 通常會看到其他對話框顯示為正在安裝服務。 系統可能會另外提示您輸入 Windows 2003 Server 安裝 CD 的位置。

完成時,按兩下一步 >。

Windows 設定伺服器精靈成功畫面的螢幕快照。完成按鈕會反白顯示。

單擊 [完成] - Windows Server 2003 現在已設定為支援 IIS 6.0,ASP.NET 1.1。

啟用 IIS,選項 #2 - 手動設定 IIS 和 ASP.NET

如果您不想使用 「設定伺服器精靈」,您可以選擇性地從 控制台 安裝 IIS 6.0 並 ASP.NET 1.1。

首先開啟 控制台:

已醒目提示 MSDN Library for Visual Studio .NET 2003 選項的新增或移除程序畫面螢幕快照。

接下來,按兩下 [新增/移除 Windows 元件],這會開啟 [Windows 元件精靈]:

Windows 元件精靈視窗的螢幕快照。ASP.NET 會反白顯示。

醒目提示並檢查 [應用程式伺服器],然後按兩下 [詳細數據?] 按鈕:

應用程式伺服器畫面的螢幕快照。ASP.NET 會反白顯示。

若要安裝 ASP.NET,請檢查 [ASP.NET]。

按兩下 [確定] 傳回 Windows 元件精靈。 從 Windows 元件精靈按兩下 [下一步 >] 開始安裝:

Windows 元件精靈應用程式伺服器畫面的螢幕快照。ASP.NET 會反白顯示。

通常會看到其他對話框顯示為正在安裝服務。 系統可能會另外提示您輸入 Windows 2003 Server 安裝 CD 的位置。

安裝完成時,您會看到 Windows 元件精靈的最後一個畫面:

Windows 元件精靈設定元件畫面的螢幕快照。狀態列正在進行中。

IIS 6.0 和 ASP.NET 1.1 現在已設定並可供使用。

使用 IIS 6.0 執行 ASP.NET 1.1 時,建議使用數個組態設定從 ASP.NET 取得最佳效能:

  • 設定背景工作進程記憶體限制
  • 設定背景工作進程回收

設定背景工作進程記憶體限制

根據預設,IIS 6.0 不會設定允許 IIS 使用的記憶體數量限制。 Asp。NET 的快取功能依賴記憶體的限制,讓快取可以主動從記憶體中移除未使用的專案。

建議您設定 IIS 6.0 的記憶體回收功能。 若要設定此開啟的 Internet Information Services Manager (Start |程式 |系統管理工具 |Internet Information Services) 。 開啟之後,展開 [應用程式集區] 資料夾:

針對每個應用程式集區:

Windows IIS 管理員畫面的螢幕快照。[檔案] 選單會顯示醒目提示的 [應用程式集區] 資料夾。

  1. 以滑鼠右鍵按兩下應用程式集區,例如 'DefaultAppPool',然後選取 [屬性]:

Windows IIS 管理員 DefaultAppPool 屬性畫面的螢幕快照。核取 [回收背景工作進程] 選項 (分鐘) 。

  1. 接下來,按兩下 [最大使用的記憶體 (MB) :',以啟用記憶體回收。 此值不應超過伺服器上虛擬) 記憶體的實體 (數量,良好的近似值為 60% 的實體記憶體,例如,對於具有 512 MB 的實體記憶體的伺服器,請選取 310。 使用 2GB 位址空間時,也建議最大值不超過 800 MB。 如果伺服器的記憶體位址空間為 3GB,背景工作進程的最大記憶體限制可以高達 1,800MB:

Windows IIS 管理員 DefaultAppPool 屬性畫面的螢幕快照。取消核取) 分鐘 (回收背景工作進程選項。

按兩下 [套用] 和 [確定] 以結束 [屬性] 對話框。 針對所有可用的應用程式集區重複此動作。

設定背景工作回收

根據預設,IIS 6.0 會設定為每隔 29 小時回收其背景工作進程。 對於執行 ASP.NET 的應用程式而言,這有點積極,建議停用自動背景工作進程回收。

若要停用自動背景工作進程回收,請先開啟 Internet Information Services Manager (Start |程式 |系統管理工具 |Internet Information Services) 。 開啟之後,展開 [應用程式集區] 資料夾:

Windows IIS 管理員畫面的螢幕快照。[檔案] 選單會顯示醒目提示的 [應用程式集區] 資料夾。

針對每個應用程式集區:

  1. 以滑鼠右鍵按兩下應用程式集區,例如 'DefaultAppPool',然後選取 [屬性]:

Windows IIS DefaultAppPool 屬性畫面的螢幕快照,其中已核取 [回收背景工作進程] 選項 () 。

  1. 取消核取 [回收背景工作進程 (分鐘) :':

Windows IIS DefaultAppPool 屬性畫面的螢幕快照,其中已取消核取 [回收背景工作進程] 選項)  (。

按兩下 [套用] 和 [確定] 以結束 [屬性] 對話框。 針對所有可用的應用程式集區重複此動作。

授與檔案系統的寫入許可權

如果您的應用程式需要檔案系統的寫入許可權,而且您使用NTFS時,您必須修改資料夾或檔案上的 存取控制清單 (ACL) ,以授與 ASP.NET 存取權。

例如,若要授與 ASP.NET c:\inetpub\wwwroot 的寫入許可權,請先開啟總管並流覽至目錄:

檔案總管的螢幕快照,其中顯示 wwwroot 資料夾清單。

接下來,以滑鼠右鍵按兩下目錄,例如 『wwwroot』 並選取屬性。 屬性對話框開啟之後,選取 [安全性] 索引標籤:

Windows wwwroot 屬性畫面的螢幕快照,其中已選取 [安全性] 索引卷標。

c:\inetpub\wwwroot\ 目錄是特殊目錄,特殊 IIS 6.0 群組 'IIS_WPG' 已獲授與讀取 & 執行、列出資料夾內容和讀取許可權。 不過,若要授與寫入許可權,您必須按兩下 [寫入] 的 [允許] 複選框:

Windows wwwroot 屬性畫面的螢幕快照。已選取 [安全性] 索引標籤。

IIS 6.0 現在具有此資料夾的寫入許可權。 若要授與其他資料夾的寫入許可權,請遵循下列步驟 - 請注意,如果群組不存在,您可能需要新增IIS_WPG群組。

警告

授與寫入許可權給IIS_WPG將允許任何 ASP.NET 應用程式寫入此目錄。

支援與 SQL Server的整合式驗證

整合式驗證可讓 SQL Server 利用 Windows NT 驗證來驗證 SQL Server 登入帳戶。 這可讓使用者略過標準 SQL Server 登入程式。 透過這種方法,網路使用者可以存取 SQL Server 資料庫,而不需提供個別的登入識別或密碼,因為 SQL Server 從 Windows NT 網路安全性程式取得使用者和密碼資訊。

為 ASP.NET 應用程式選擇整合式驗證是不錯的選擇,因為不會將認證儲存在應用程式的 連接字串 內。 相反地,用來連線到 SQL 的 連接字串 如下所示:

"server=localhost; database=Northwind;Trusted_Connection=true"

此 連接字串 會告知 SQL Server 使用嘗試存取 SQL Server 之應用程式的 Windows 認證。 在 ASP.NET/IIS 6 的情況下,這會是IIS_WPG群組中的帳戶。

若要啟用 SQL Server 與 ASP.NET 之間的整合式驗證,您必須先確定已針對整合式驗證或 Mixed-Mode 驗證設定 SQL Server -請洽詢您的 DBA 來判斷此問題。 如果 SQL Server 處於這兩種模式之一,您可以使用整合式驗證。

開啟 SQL Server Enterprise Manager (Start |程式 |Microsoft SQL Server |Enterprise Manager) ,選取適當的伺服器,然後展開 [安全性] 資料夾:

Windows SQL Enterprise Manager 畫面的螢幕快照。功能表已醒目提示 [登入]。

如果未列出 'BUILTINT\IIS_WPG' 群組,請以滑鼠右鍵按兩下 [登入],然後選取 [新增登入]:

Windows SQL Enterprise Manager SQL Server [登入屬性] 畫面的螢幕快照,其中已選取 [一般] 索引標籤。

在 [名稱:] 文本框中,輸入 '[Server/Domain Name]\IIS_WPG',或按兩下省略號按鈕以開啟 Windows NT 使用者/群組選擇器:

Windows SQL Enterprise Manager SQL Server [登入屬性] 畫面的螢幕快照。畫面會顯示伺服器名稱的清單。

選取目前計算機的IIS_WPG群組,然後按兩下 [新增],然後按兩下 [確定] 以關閉選擇器。

接著,您也需要設定預設資料庫和存取資料庫的許可權。 若要從下拉式清單中選擇預設資料庫,例如選取 [Northwind] 下方:

Windows Server Enterprise Manager SQL Server [登入屬性] 畫面的螢幕快照。已選取 [一般] 索引標籤。

接下來,按兩下 [資料庫存取] 索引標籤:

Windows Server Enterprise Manager SQL Server [登入屬性] 畫面的螢幕快照。已選取 [資料庫存取] 索引標籤。

針對您想要允許存取的每個資料庫,按兩下 [允許] 複選框。 您也需要選取資料庫角色,檢查db_owner可確保您的登入具有管理及使用所選資料庫的所有必要許可權。

按兩下 [確定] 結束屬性對話框。 您的 ASP.NET 應用程式現在已設定為支援整合式 SQL Server 驗證。

請勿在 IIS 6.0 原生模式中執行 ASP.NET 1.0

只有在 IIS 5 相容性模式中才支援 IIS 6.0 上的 ASP.NET 1.0。

若要將 ASP.NET 1.0 設定為以 IIS 5.0 相容性模式執行,請開啟 [因特網服務管理員],然後以滑鼠右鍵按兩下 [網站],然後選取 [屬性]:

Windows IIS 管理員畫面的螢幕快照。網站資料夾會反白顯示。

切換至 [服務] 索引標籤並檢查 ?在 IIS 5.0 隔離模式中執行 WWW 服務?:

Windows IIS 管理員網站內容畫面的螢幕快照。已選取 [服務] 索引標籤。