在Win 2003中配置ASP.net環(huán)境
大家知道,Microsoft為了更好地預(yù)防惡意用戶和攻擊者的攻擊,在默認(rèn)情況下,沒有將 IIS6.0 安裝到 Windows Server 2003 家族的成員上。而且,當(dāng)我們最初安裝 IIS6.0 時(shí),該服務(wù)在高度安全和'鎖定'模式下安裝。在默認(rèn)情況下,IIS6.0 只為靜態(tài)內(nèi)容提供服務(wù)即,諸如 ASP、ASP.NET、在服務(wù)器端的包含文件、WebDAV 發(fā)布和 FrontPage Server Extensions 功能只有在啟用時(shí)才工作。在Windows 2003 IIS 6.0中安裝部署ASP.net環(huán)境,我們首先要了解一下IIS6.0 新的特點(diǎn),在windows 2003 Server下如何安裝IIS6.0,在IIS6.0的配合下我們?nèi)绾蝸戆惭b和部署ASP.net環(huán)境,以及它們之間關(guān)系,下面的內(nèi)容將給大家一個(gè)解答。
一、IIS6.0 新特點(diǎn)
IIS 6.0 包括許多新功能,它們旨在幫助企業(yè)、IT 專業(yè)人士和 Web 管理員實(shí)現(xiàn)其網(wǎng)站(他們可能擁有位于單個(gè) IIS6.0 服務(wù)器或多個(gè)服務(wù)器上的數(shù)千個(gè)網(wǎng)站)在性能、可靠性、可伸縮性和安全性方面的目標(biāo)。
下表總結(jié)了不同版本的 IIS 之間的重要區(qū)別。 IIS 4.0 IIS 5.0 IIS 5.1 IIS 6.0 平臺(tái) Windows NT 4.0 Windows 2000 Windows XP Professional Windows Server 2003 家族 體系結(jié)構(gòu) 32 位 32 位 32 位和 64 位 32 位和 64 位 應(yīng)用程序進(jìn)程模型
TCP/IP 內(nèi)核; MTX.exe
TCP/IP 內(nèi)核;
DLLhost.exe(處于中等或高應(yīng)用程序隔離模式下的多個(gè) DLL 主機(jī))
TCP/IP 內(nèi)核;
DLLhost.exe(處于中等或高應(yīng)用程序隔離模式下的多個(gè) DLL 主機(jī))
HTTP.sys 內(nèi)核 ;當(dāng) IIS 以 IIS 5.0 隔離模式運(yùn)行時(shí):Inetinfo.exe(對(duì)于進(jìn)程內(nèi)應(yīng)用程序)或 DLLhost.exe(對(duì)于進(jìn)程外應(yīng)用程序);當(dāng) IIS 以工作進(jìn)程隔離模式運(yùn)行時(shí):W3wp.exe(多工作進(jìn)程) 配置數(shù)據(jù)庫配置 二進(jìn)制 二進(jìn)制 二進(jìn)制 XML 安全性 Windows 身份驗(yàn)證;SSL Windows 身份驗(yàn)證;SSL;Kerberos Windows 身份驗(yàn)證;SSL;Kerberos;安全向?qū)? Windows 身份驗(yàn)證;SSL;Kerberos;安全向?qū)В籔assport 支持 遠(yuǎn)程管理 HTMLA HTMLA無 HTMLA
終端服務(wù)
遠(yuǎn)程管理工具 (HTML)
終端服務(wù)
群集支持 在 Windows NT 4.0 中 IIS 群集 Windows 支持 Windows 支持 WWW 服務(wù) Windows NT 4.0 上的 IIS Windows 9x 上的個(gè)人 Web 管理器; Windows 2000 上的 IIS (可選)Windows XP Professional 上的 IIS Windows Server 2003 家族成員上的 二、在Windows2003 Server安裝IIS 6.0服務(wù)器 1、使用'配置您的服務(wù)器向?qū)?安裝 IIS6.0 1)從'開始'菜單,單擊'管理您的服務(wù)器'。 2)在'管理您的服務(wù)器角色'下,單擊'添加或刪除角色'。 3)閱讀'配置您的服務(wù)器向?qū)?中的預(yù)備步驟,然后單擊'下一步'。 4)在'服務(wù)器角色'下,單擊'應(yīng)用程序服務(wù)器 (IIS,ASP.NET)',然后單擊'下一步'。 5)閱讀概要信息,然后單擊'下一步'。 6)單擊'完成'。2、使用控制面板安裝 IIS、添加組件或刪除組件1)從'開始'菜單,單擊'控制面板'。 2)雙擊'添加或刪除程序'。 3)單擊'添加/刪除 Windows 組件'。 4)在'組件'列表框中,單擊'應(yīng)用程序服務(wù)器'。 5)單擊'詳細(xì)信息'。 6)單擊'Internet 信息服務(wù)管理器'。 7)單擊'詳細(xì)信息'以查看 IIS 可選組件的列表。 8)選擇要安裝的所有可選組件。 9)單擊'確定',直到返回到'Windows 組件向?qū)?。 10)單擊'下一步',然后完成'Windows 組件向?qū)?。
三、在Windows 2003 Server 安裝 ASP.NET Windows Server 2003 家族利用 ASP.NET 和 IIS 集成改善了開發(fā)人員體驗(yàn)。ASP.NET 識(shí)別大多數(shù) ASP 代碼,同時(shí)為創(chuàng)建可作為 Microsoft .NET Framework 的一部分工作的企業(yè)級(jí) Web 應(yīng)用程序提供更多的功能。使用ASP.NET 允許我們充分利用公共語言運(yùn)行庫的功能,如類型安全、繼承、語言互操作性和版本控制。IIS 6.0 還為最新的 Web 標(biāo)準(zhǔn),包括 XML、簡(jiǎn)單對(duì)象訪問協(xié)議 (SOAP) 和 Internet 協(xié)議版本 6.0 (IPv6.0),提供支持。 ASP.NET 是一個(gè)統(tǒng)一的 Web 開發(fā)平臺(tái),它提供開發(fā)人員創(chuàng)建企業(yè)級(jí) Web 應(yīng)用程序所需的服務(wù)。盡管 ASP.NET 的語法基本上與 ASP 兼容,但是它還提供了一個(gè)新的編程模型和基礎(chǔ)結(jié)構(gòu)以提高應(yīng)用程序的安全性、縮放性和穩(wěn)定性。通過逐漸向現(xiàn)有的 ASP 應(yīng)用程序增加 ASP.NET 功能,我們可以自由地使其增大。ASP.NET 是一個(gè)編譯的、基于 .NET 的環(huán)境;我們可以用任何 .NET 兼容的語言(包括 Microsoft Visual Basic.NET,Microsoft Visual C# 和 Microsoft JScript .NET)創(chuàng)作應(yīng)用程序。另外,整個(gè) Microsoft .NET Framework 可用于任何 ASP.NET 應(yīng)用程序。開發(fā)人員可以很容易地從這些技術(shù)受益,這些技術(shù)包括管理的公共語言運(yùn)行庫環(huán)境、類型安全、繼承等。 ASP.NET的優(yōu)點(diǎn)如下: 1)可管理性: ASP.NET 使用基于文本的、分級(jí)的配置系統(tǒng),簡(jiǎn)化了將設(shè)置應(yīng)用于服務(wù)器環(huán)境和 Web 應(yīng)用程序的工作。因?yàn)榕渲眯畔⑹谴鎯?chǔ)為純文本的,因此可以在沒有本地管理工具的幫助下應(yīng)用新的設(shè)置。配置文件的任何變化都可以自動(dòng)檢測(cè)到并應(yīng)用于應(yīng)用程序。 2)安全: ASP.NET 為 Web 應(yīng)用程序提供了默認(rèn)的授權(quán)和身份驗(yàn)證方案。開發(fā)人員可以根據(jù)應(yīng)用程序的需要很容易地添加、刪除或替換這些方案。 3)易于部署: 通過簡(jiǎn)單地將必要的文件復(fù)制到服務(wù)器上,ASP.NET 應(yīng)用程序即可以部署到該服務(wù)器上。不需要重新啟動(dòng)服務(wù)器,甚至在部署或替換運(yùn)行的已編譯代碼時(shí)也不需要重新啟動(dòng)。 4)增強(qiáng)的性能: ASP.NET 是運(yùn)行在服務(wù)器上的已編譯代碼。與傳統(tǒng)的 Active Server Pages (ASP) 不同,ASP.NET 能利用早期綁定、實(shí)時(shí) (JIT) 編譯、本機(jī) 優(yōu)化 和全新的緩存服務(wù)來提高性能。 5)靈活的輸出緩存: 根據(jù)應(yīng)用程序的需要,ASP.NET 可以緩存頁數(shù)據(jù)、頁的一部分或整個(gè)頁。緩存的項(xiàng)目可以依賴于緩存中的文件或其他項(xiàng)目,或者可以根據(jù)過期策略進(jìn)行刷新。 6)國(guó)際化: ASP.NET 在內(nèi)部使用 Unicode 以表示請(qǐng)求和響應(yīng)數(shù)據(jù)。可以為每臺(tái)計(jì)算機(jī)、每個(gè)目錄和每頁配置國(guó)際化設(shè)置。 7)移動(dòng)設(shè)備支持: ASP.NET 支持任何設(shè)備上的任何瀏覽器。開發(fā)人員使用與用于傳統(tǒng)的桌面瀏覽器相同的編程技術(shù)來處理新的移動(dòng)設(shè)備。 8)擴(kuò)展性和可用性: ASP.NET 被設(shè)計(jì)成可擴(kuò)展的、具有特別專有的功能來提高群集的、多處理器環(huán)境的性能。此外,Internet 信息服務(wù) (IIS) 和 ASP.NET 運(yùn)行時(shí)密切監(jiān)視和管理進(jìn)程,以便在一個(gè)進(jìn)程出現(xiàn)異常時(shí),可在該位置創(chuàng)建新的進(jìn)程使應(yīng)用程序繼續(xù)處理請(qǐng)求。 9)跟蹤和調(diào)試: ASP.NET 提供了跟蹤服務(wù),該服務(wù)可在應(yīng)用程序級(jí)別和頁面級(jí)別調(diào)試過程中啟用。可以選擇查看頁面的信息,或者使用應(yīng)用程序級(jí)別的跟蹤查看工具查看信息。在開發(fā)和應(yīng)用程序處于生產(chǎn)狀態(tài)時(shí),ASP.NET 支持使用 .NET Framework 調(diào)試工具進(jìn)行本地和遠(yuǎn)程調(diào)試。當(dāng)應(yīng)用程序處于生產(chǎn)狀態(tài)時(shí),跟蹤語句能夠留在產(chǎn)品代碼中而不會(huì)影響性能。 10)與 .NET Framework 集成: 因?yàn)?ASP.NET 是 .NET Framework 的一部分,整個(gè)平臺(tái)的功能和靈活性對(duì) Web 應(yīng)用程序都是可用的。也可從 Web 上流暢地訪問 .NET 類庫以及消息和數(shù)據(jù)訪問解決方案。ASP.NET 是獨(dú)立于語言之外的,所以開發(fā)人員能選擇最適于應(yīng)用程序的語言。另外,公共語言運(yùn)行庫的互用性還保存了基于 COM 開發(fā)的現(xiàn)有投資。 11)與現(xiàn)有 ASP 應(yīng)用程序的兼容性: ASP 和 ASP.NET 可并行運(yùn)行在 IIS Web 服務(wù)器上而互不沖突;不會(huì)發(fā)生因安裝 ASP.NET 而導(dǎo)致現(xiàn)有 ASP 應(yīng)用程序崩潰的可能。ASP.NET 僅處理具有 .aspx 文件擴(kuò)展名的文件。具有 .asp 文件擴(kuò)展名的文件繼續(xù)由 ASP 引擎來處理。然而,應(yīng)該注意的是會(huì)話狀態(tài)和應(yīng)用程序狀態(tài)并不在 ASP 和 ASP.NET 頁面之間共享。
安裝 ASP.NET 在 Windows Server 2003 家族、Windows 2000 (Professional、Server 和 Advanced Server)以及 Windows XP Professional 上的客戶端和服務(wù)器應(yīng)用程序都支持 ASP.NET。 運(yùn)行 Microsoft Windows Server 2003 家族成員的服務(wù)器可以配置為應(yīng)用程序服務(wù)器,并將 ASP.NET 作為在配置應(yīng)用程序服務(wù)器角色時(shí)可以啟用的選項(xiàng)。要向產(chǎn)品服務(wù)器部署 ASP.NET Web 應(yīng)用程序,在分發(fā)應(yīng)用程序之前,必須確保在產(chǎn)品服務(wù)器中啟用了 ASP.NET 和 IIS 角色。 1、使用'配置您的服務(wù)器'向?qū)г谶\(yùn)行 Windows Server 2003 的服務(wù)器中安裝 ASP.NET 1)從'開始'菜單中,單擊'管理您的服務(wù)器';在'管理您的服務(wù)器'窗口中,單擊'添加或刪除角色'。 2)在'配置您的服務(wù)器向?qū)?中,單擊'下一步',并在'服務(wù)器角色'對(duì)話框中,選中'應(yīng)用程序服務(wù)器 (IIS、ASP.NET)',然后單擊'下一步'。 3)在'應(yīng)用程序服務(wù)器選項(xiàng)'對(duì)話框中,選中'啟用 ASP.NET'復(fù)選框,單擊'下一步',然后再單擊'下一步'。 4)如有必要,請(qǐng)將 Windows Server 2003 安裝 CD 插入 CD-ROM 驅(qū)動(dòng)器,然后單擊'下一步'。 5)當(dāng)安裝完成時(shí),單擊'完成'。2、在運(yùn)行 Windows Server 2003 的服務(wù)器中使用'添加或刪除程序'安裝 ASP.NET1)從'開始'菜單中,指向'控制面板',然后單擊'添加或刪除程序'。 2)在'添加或刪除程序'對(duì)話框中,單擊'添加/刪除 Windows 組件'。 3)在'Windows 組件'向?qū)е械?組件'中,選中'應(yīng)用程序服務(wù)器'復(fù)選框,然后單擊'下一步'。 4)當(dāng)在'Windows 組件'向?qū)е型瓿蓪?duì) Windows Server 2003 的配置時(shí),單擊'完成'。
3、在運(yùn)行 Windows Server 2003 的服務(wù)器中的 IIS 管理器中啟用 ASP.NET1)從'開始'菜單中,單擊'運(yùn)行'。 2)在'運(yùn)行'對(duì)話框中的'打開'框中,鍵入 inetmgr,然后單擊'確定'。 3)在 IIS 管理器中,展開本地計(jì)算機(jī),然后單擊'Web 服務(wù)擴(kuò)展'。 4)在右側(cè)窗格中,右鍵單擊'ASP.NET'然后單擊'允許'。ASP.NET 的狀態(tài)變?yōu)?允許'。
ASP.NET Web 應(yīng)用程序的布局 ASP.NET 應(yīng)用程序被定義為可從 Web 服務(wù)器上的虛擬目錄及其子目錄中調(diào)用的所有文件和可執(zhí)行碼。其中可以包含網(wǎng)頁(.html 文件)、Web 表單頁面(.aspx 文件)、Web 表單用戶控件(.ascx 文件)、XML Web 服務(wù)(.asmx 文件)、HTTP 處理程序、HTTP 模塊和其他文件(如圖像和配置文件)。現(xiàn)在使用的所有與 Microsoft .NET Framework 版本相關(guān)的腳本映射也都是 ASP.NET 應(yīng)用程序的一部分。ASP.NET 應(yīng)用程序必須位于 IIS 虛擬目錄(也稱為應(yīng)用程序根目錄)中。ASP.NET 應(yīng)用程序可包含已編譯的程序集(通常是包含業(yè)務(wù)邏輯的 DLL 文件)、用于存儲(chǔ)預(yù)編譯代碼的已知目錄(目錄名總是 Bin)、存儲(chǔ)在基于文本的、易讀的 Web.config 文件中的配置設(shè)置、頁、服務(wù)器控件,以及 XML Web 服務(wù)。 服務(wù)器中任何不與其他應(yīng)用程序共享的預(yù)編譯代碼必須存儲(chǔ)在應(yīng)用程序的 Bin 目錄中。它是應(yīng)用程序的本地程序集緩存。Web.config 文件在基于 XML 的文本文件中存儲(chǔ)應(yīng)用程序級(jí)的配置文件。這意味著可以使用任意標(biāo)準(zhǔn)的文本編輯器或 XML 分析器來創(chuàng)建它們,而且它們是可讀的。如果不在應(yīng)用程序根目錄中包含 Web.config 文件,則配置設(shè)置由 Machine.config 文件中整個(gè)服務(wù)器的配置文件來確定。安裝 .NET Framework 時(shí),會(huì)安裝 Machine.config 文件的某個(gè)版本。 下圖顯示了 ASP.NET 應(yīng)用程序 文件系統(tǒng) 布局的示例。本圖中的應(yīng)用程序包括 Bin 目錄中的兩個(gè) DLL 文件、一個(gè) Default.aspx 頁,一個(gè)名為 Menu.ascx 的用戶控件、一個(gè)名為 MyWebService.asmx 的 XML Web 服務(wù)以及一個(gè) Global.asax 文件。另外,該應(yīng)用程序是使用下列三個(gè)配置文件配置的:系統(tǒng)根目錄中計(jì)算機(jī)級(jí)別的 Machine.config 文件、C:InetpubWwwroot 目錄中站點(diǎn)級(jí)別的 Web.config 文件和應(yīng)用程序根目錄中應(yīng)用程序級(jí)別的 Web.config 文件。當(dāng)站點(diǎn)的 Web.config 文件覆蓋 Machine.config 文件中的設(shè)置時(shí),在應(yīng)用程序根目錄中存儲(chǔ)的配置設(shè)置將覆蓋站點(diǎn)的 Web.config 文件和 Machine.config 文件中的設(shè)置。
ASP.NET與IIS、ASP 之間的比較 ASP.NET 應(yīng)用程序與 Internet 信息服務(wù) (IIS) 之間的關(guān)系如下:IIS 通過 aspnet_isapi.dll(ASP.NET 的進(jìn)程模型)對(duì)可發(fā)布的 ASP.NET 文件的所有請(qǐng)求提供服務(wù)。IIS 不會(huì)處理服務(wù)器端的代碼;而 ASP.NET 引擎則會(huì)處理服務(wù)器端代碼,然后將輸出返回給 IIS(如果可能,或另一個(gè) Web 服務(wù)器)。 ASP.NET 并非僅僅是下一代的ASP,它為創(chuàng)建利用 Internet 的網(wǎng)絡(luò)應(yīng)用程序提供了全新的編程模型。ASP.NET與ASP比較的特點(diǎn)如下: 1、改進(jìn)的性能和可伸縮性 1)編譯后執(zhí)行:ASP.NET 比傳統(tǒng) ASP 的運(yùn)行速度更快,同時(shí)保留了 ASP'只需點(diǎn)擊保存'的更新模型。無需顯式的編譯步驟。ASP.NET 自動(dòng)檢測(cè)變化,根據(jù)需要?jiǎng)討B(tài)編譯文件,并且保存編譯結(jié)果以便后續(xù)的請(qǐng)求再次使用。動(dòng)態(tài)編譯保證了用戶的應(yīng)用程序總是最新的,并且編譯后執(zhí)行的操作會(huì)使其運(yùn)行速度更快。對(duì)于多數(shù)從傳統(tǒng)的 ASP 遷移到 ASP.NET 的應(yīng)用程序,其處理的頁數(shù)增長(zhǎng)了 3 至 5 倍。 2)大容量輸出緩存:ASP.NET 輸出緩存極大地改進(jìn)了應(yīng)用程序的性能和可伸縮性。當(dāng)在頁面中啟用輸出緩存時(shí),ASP.NET 就會(huì)執(zhí)行一次該頁并將結(jié)果在發(fā)送至用戶之前保存在內(nèi)存中。當(dāng)其他用戶請(qǐng)求同一頁面時(shí),ASP.NET 使用內(nèi)存中的緩存結(jié)果向用戶提供服務(wù),而不是重新執(zhí)行該頁面。輸出緩存是可配置的,并且可以用來緩存單個(gè)區(qū)域或整個(gè)頁面。 3)Web 場(chǎng)會(huì)話狀態(tài):ASP.NET 會(huì)話狀態(tài)允許我們?cè)?Web 場(chǎng)中的所有計(jì)算機(jī)之間共享會(huì)話數(shù)據(jù)。現(xiàn)在,用戶可以通過多個(gè)請(qǐng)求訪問 Web 場(chǎng)中不同的服務(wù)器,并且仍然具有完全訪問會(huì)話數(shù)據(jù)的權(quán)限。 2、增強(qiáng)的可靠性 內(nèi)存泄漏、死鎖和故障保護(hù):ASP.NET 自動(dòng)檢測(cè)錯(cuò)誤(例如,死鎖和內(nèi)存泄漏)并進(jìn)行恢復(fù)以確保我們的應(yīng)用程序始終可用。例如,當(dāng)檢測(cè)到內(nèi)存泄漏時(shí),ASP.NET 將自動(dòng)啟動(dòng)新的 ASP.NET 工作進(jìn)程副本,并將所有的新請(qǐng)求定向到該進(jìn)程。當(dāng)舊進(jìn)程完成掛起請(qǐng)求的處理后,會(huì)經(jīng)過適當(dāng)?shù)奶幹貌⑨尫判孤┑膬?nèi)存。 3、部署簡(jiǎn)單 1)'非接觸式'應(yīng)用程序部署:使用 ASP.NET,我們可以通過將其復(fù)制到服務(wù)器來進(jìn)行整個(gè)應(yīng)用程序的部署。配置設(shè)置將存儲(chǔ)在應(yīng)用程序的 XML 文件中。 2)動(dòng)態(tài)更新運(yùn)行的應(yīng)用程序:ASP.NET 允許我們不必重新啟動(dòng) Web 服務(wù)器而更新已編譯的組件。與傳統(tǒng)的 COM 組件(這些組件需要在部署更新后手動(dòng)重新啟動(dòng) Web 服務(wù)器)不同,ASP.NET 自動(dòng)檢測(cè)更改并使用新的代碼啟動(dòng)。 3)遷移路徑簡(jiǎn)單:ASP.NET 可以和傳統(tǒng)的 ASP 應(yīng)用程序一起在 Microsoft Windows 2000、Windows XP、以及 Windows Server 2003 家族成員的 IIS 上運(yùn)行。我們可以一次遷移一個(gè)應(yīng)用程序,甚至是單獨(dú)的頁面。ASP.NET 甚至允許我們繼續(xù)使用現(xiàn)有的傳統(tǒng) COM 商務(wù)組件。 4、新的應(yīng)用程序模型 1)XML Web 服務(wù):XML Web 服務(wù)允許應(yīng)用程序通過 Internet 進(jìn)行通信和共享數(shù)據(jù),而不管操作系統(tǒng)和編程語言如何。ASP.NET 使得公開和調(diào)用 XML 網(wǎng)絡(luò)服務(wù)變得簡(jiǎn)單。 2)移動(dòng) Web 設(shè)備支持:ASP.NET 移動(dòng)控件允許我們處理超過 80 臺(tái)使用 ASP.NET 的移動(dòng) Web 設(shè)備。我們只需一次性寫入應(yīng)用程序,移動(dòng)控件就能自動(dòng)生成請(qǐng)求設(shè)備的頁面。 5、開發(fā)人員的效率 1)簡(jiǎn)單的編程模型:具有服務(wù)器控件(這些控件允許我們使用比傳統(tǒng) ASP 更少的代碼來構(gòu)建效果極佳的頁面)的 ASP.NET 使得動(dòng)態(tài)構(gòu)建真實(shí)的 Web 應(yīng)用程序變得更加容易。 2)靈活的語言選項(xiàng):ASP.NET 不僅支持 Microsoft Visual Basic Scripting Edition (VBScript) 和 Microsoft JScript,而且支持 25 種以上的 .NET 語言,包括對(duì) Visual Basic .NET、Microsoft C# 和 JScript .NET 的內(nèi)置支持。 3)豐富的類框架:.NET Framework 類庫提供了 4500 多種類,這些類封裝了大量的功能,諸如 XML、數(shù)據(jù)訪問、文件上載、正則表達(dá)式、圖像生成、性能監(jiān)視和日志記錄、事務(wù)、消息隊(duì)列和 SMTP 郵件。