IIS7.5 學習筆記(一)IIS 7.5 新特性
寫在前面:
Windows Server 2008 R2發(fā)布有一段時間了,我于2009年11月份開始體驗R2,整體感覺非常不錯,建議有實驗條件的開發(fā)人員都體驗一下,即使是在虛擬機中。Windows Server 2008 R2中IIS的版本也升級到了7.5,在平時工作學習中經(jīng)常遇到IIS出現(xiàn)各種各樣的問題,歸根到底是對IIS的底層實現(xiàn)機理不甚了解,決定有體系的學習一下。本人Windows Server經(jīng)驗薄弱,措辭不當之處請廣大同行前輩多多指教。
本系列所有示例代碼均在 Windows Server 2008 R2 DataCenter(IIS 7.5) + Visual Studio 2010 Ultimate RC 下測試通過。
一、IIS 7.5概述
園子里有朋友介紹了IIS 7.5的新特性,很全面,翻譯的很好。由于寫的較早,當時還只是Windows Server 2008 R2 Beta,現(xiàn)在我就用Windows Server 2008 R2 DataCenter正式版來適當補充一下吧:)
雖然寫的是IIS7.0,但是同樣適用于IIS7.5.
在【開始】--【運行】,輸入:inetmgr,打開IIS管理器:
可以看到,雖然顯示的是Internet Information Services 7,但是在關(guān)于窗口看以看出明確的版本號:7.5.7600.16385
IIS 7.5是對IIS7的一次升級,是IIS的最新版本,園子里也有朋友做了介紹,這里只列了個綱要:
-
集成擴展(Integrated extensions)
- Web分布式創(chuàng)作版本管理和文件傳輸服務(wù)(WebDAV and FTP)
- 請求過濾(Request Filtering)
- 管理員維護模塊(Administration Pack modules)
-
管理功能的增強(Management enhancements)
- 最佳體驗分析器(Best Practices Analyzer)
- Windows PowerShell支持和擴展命令(Windows PowerShell? Provider and cmdlets)
- 可配置的日志記錄與跟蹤(Configuration logging and tracing)
-
應(yīng)用程序宿主增強(Application hosting enhancements)
- 服務(wù)增強(Service hardening)
- 托管的服務(wù)賬戶?(Managed service accounts)
- 可在Web核心版本中宿主?(Hostable Web Core)
- 針對于通用網(wǎng)關(guān)接口的失敗請求的跟蹤(Failed Request Tracing for FastCGI)
- 對服務(wù)器核心版本的.NET功能增強(Enhancements to .NET support on Server Core)
注:標紅色的我認為翻譯的有點問題
二、使用PowerShell管理IIS 7.5
PowerShell為IIS7.0、IIS7.5提供了擴展命令,可以像訪問文件系統(tǒng)一樣訪問IIS站點。
1、打開Windows PowerShell Modules:
2、輸入:Set-Location IIS:\,就進入了IIS的"驅(qū)動器":
3、輸入:Get-ChildItem來查看IIS下的項:
4、查看當前的所有站點:
5、下面我們用PowerShell將一個ASP.NET網(wǎng)站發(fā)布到IIS7.5中:
1)建立一個ASP.NET網(wǎng)站:
2)發(fā)布到IIS7.5:
我們建立了一個端口號為82的網(wǎng)站:TestSite
現(xiàn)在來瀏覽一下剛剛創(chuàng)建的網(wǎng)站:
可以輸入:Remove-Item TestSite來刪除站點:
PowerShell的功能十分強大,具有很強的靈活性與可擴展性,后面我們會繼續(xù)深入學習PowerShell在IIS7.5中的管理方法。
三、使用AppCmd來管理IIS7.5
PowerShell的耀眼光芒使得人們幾乎忘記了另一個隨同IIS7.0發(fā)布的命令行管理工具:AppCmd. AppCmd是用于IIS7.0的管理工具,可以完成GUI所能完成的全部工作,提供了更大的靈活性與快捷性。AppCmd默認存放在:%SystemRoot%\System32\inetsrv目錄下,建議將其添加進PATH環(huán)境變量,在PowerShell中輸入AppCmd:
下面我們用AppCMD來建立一個網(wǎng)站:
輸入:appcmd add site /name:"AppCmdTest" /bindings:http://localhost:83 /physicalpath:" E:\IIS7.5\SimpleWebSite\WebSiteDemo"
可以看到:
SITE … added
APP…added
VDIR…added
在瀏覽器中打開:
AppCmd也是相當快捷與高效的,那么在實際開發(fā)中應(yīng)該選擇PowerShell還是AppCmd呢?個人感覺AppCmd很小巧,如果是小型應(yīng)用,需要批量管理IIS7.x,建議用AppCmd;如果項目比較復(fù)雜,同時摻雜著跨平臺、跨數(shù)據(jù)庫的企業(yè)級應(yīng)用,則應(yīng)該使用PowerShell,因為它更加高效,易于擴展,與微軟的許多服務(wù)器產(chǎn)品進行了整合。
四、使用IIS API來管理IIS7.5
從IIS7開始提供了一組全新的、方便使用的、面向?qū)ο蟮腁PI,該API分為兩部分:托管的和本地的。本地API由C++編寫,可以用來開發(fā)本地模塊并插入IIS內(nèi)核。而托管API則可以借助于.NET Framework的優(yōu)勢來更方便的對IIS7.x進行管理。
下面我們使用Microsoft.Web.Administration(MWA) API來創(chuàng)建一個Web站點,效果與之前用PowerShell和AppCmd的一樣。
1、創(chuàng)建一個控制臺程序,并添加引用:System.Web、Microsoft.Web.Administration
注意要將控制臺項目的.NET Framework版本設(shè)置為4.0,不能用Cilent Profile。
2、添加如下代碼:
代碼
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Web.Administration;
namespace MWADemo
{
class Program
{
static void Main(string[] args)
{
ServerManager sm = new ServerManager();
sm.Sites.Add("MWASite", "http", ":84:localhost", @"E:\IIS7.5\SimpleWebSite\WebSiteDemo");
sm.CommitChanges();
}
}
}
3、F5運行后,在瀏覽器中測試一下:
小結(jié):
本次 主要介紹了IIS7.5的新特性,因為很多朋友已經(jīng)介紹過,故只提了些綱要。然后分別用PowerShell、AppCMD、MWA API的方式對IIS7.5的站點進行了簡單的管理操作,三者功能都很強大,只是適用場合不同。后續(xù)篇章會主要以MWA API和PowerShell來對IIS7.5進行開發(fā)與管理,深入學習IIS7.5底層各部件的實現(xiàn)機理。


浙公網(wǎng)安備 33010602011771號