IIS 7.0

IIS 7.0

IIS(Internet Information Services)7 指 Windows Server 2008、Windows Server 2008 R2、Windows Vista 和 Windows 7 的某些版本中包含的 IIS 版本。IIS 7.0 在 Windows Server 2008 中是 Web 伺服器 (IIS) 角色,而在 Windows Vista 中是 Web 伺服器。

基本介紹

  • 外文名:Internet Information Services7 
  • 簡稱:IIS 7.0
  • 屬性:Web 伺服器 (IIS) 角色
  • 開啟方法熱鍵WinKey+R—輸入"cmd.exe"
功能用途,操作方法,安裝方法,工作原理,技術參數,運行模式,

功能用途

IIS 7.5 在 Windows Server 2008 R2 中是 Web 伺服器 (IIS) 角色,而在 Windows 7 中是 Web 伺服器。Web 伺服器在 IIS 7 中經過重新設計,您將能夠通過添加或刪除模組來自定義伺服器,以滿足您的特定需求。模組是伺服器用於處理請求的獨特功能。例如,IIS 使用身份驗證模組對客戶端憑據進行身份驗證,並使用快取模組來管理快取活動。IIS是一個支持HTTP和FTP發布服務的Web伺服器。IIS 7.0 通過支持靈活的可擴展模型來實現強大的定製功能,通過安裝和運行特徵加強安全。
IIS 7.0現在還可以讓那些在其中負責web應用程式或服務的人來代理許可權,通過選擇性地安裝和運行特性增強安全性。IIS 7.0的可擴展性包括一個全新的核心伺服器API集合,這使得特性模組可以用本機碼(C/C++)或託管代碼開發。IIS 7.0還啟用了配置、腳本、事件日誌和管理工具特性集的可擴展性,向軟體開發者提供了一個完備的伺服器平台,開發者可以在該平台上建立Web伺服器擴展模組。IIS 7.0 包括了一整套的管理工具,包括新的管理員和命令行工具,新的託管代碼和腳本API和Windows PowerShell支持簡化開發人員和管理員的日常工作。管理工具是完全可擴展的,使得開發者能夠使用.NET框架建立新的管理模組,也很容易將新的管理UI模組插入進來,如同隨IIS 7.0發布的那些模組一般,新模組的工作過程是透明的。
IIS 7.0核心Web伺服器與IIS 6.0比較,有一些根本性的變化。例如,本機代碼和託管代碼可以通過單一的請求流程進行處理。集成化的流程,使得不同的套用框架可以在單一的Web伺服器請求流水線中運行,為所有應用程式提供了內建的ASP. NET可擴展性。IIS 7.0還支持使用.NET框架開發核心Web伺服器擴展。IIS 7.0集成了現存的用於ASP. NET的IHttpModule API,使得對於所有請求,你的託管代碼模組都能夠訪問請求流程中的所有事件。IIS 7.0包括一個新的Runtime State and Control API,提供了關於應用程式池、工作進程、網站、應用程式域、和運行中的請求的實時狀態信息。該信息通過本機COM組件API暴露出來。該API是通過新的IIS WMI提供者appcmd.exe和IIS Manager包裝和暴露出來的。
Windows Server 2008提供了在生產環境中支持Web內容承載所需的全部 IIS 功能。Windows Vista 也提供了 IIS 功能,但可用功能取決於Windows Vista的版本。Windows Vista中的IIS對於想要構建和測試 Web應用程式的用戶而言十分理想。IIS 7.0 包括Microsoft.Web.Administration接口編程用來管理伺服器。IIS 7.0 還包括一個新的Windows Management Instrumentation(WMI)提供者用來提供訪問配置和伺服器的狀態信息給VBScript和JScript。通過使用WMI,管理員可以輕鬆地自動化基本的配置任務以及管理網站和應用程式。
IIS 7.0IIS 7.0
圖形界面的新IIS管理器在防火牆裡不開放任何連線埠的情況下就可以通過HTTP的遠程管理,該管理工具是完全可擴展的。
圖形界面的新IIS管理器支持HTTP遠程管理協定,在無需DCOM的情況下允許無縫地進行本地,遠程,甚至跨網際網路的連線或在防火牆裡開放其它管理連線埠。

操作方法

Vista開啟IIS 7.0
在Vista中,我們可以看得到新版本的IIS 7.0看上去比6.0有了很大的改進。你現在可以自由開啟IIS 7.0,並在個人電腦上架設自己的網站。
下面是開啟方法:
1、熱鍵WinKey+R—輸入"cmd.exe" (不帶引號)。
2、輸入下列命令:
start /w pkgmgr.exe /iu:IIS-WebServerRole;IIS-WebServerFeature;IIS-FTPServerFeature
然後,就會自動安裝IIS 7.0。而且,IIS 7.0已經完全組件化,類似於Apache
Win7開啟IIS 7.0
默認情況下,windows7安裝時是不會自動安裝iis,只能手動安裝,需要有安裝盤。
安裝方法:
開始-控制臺-程式-打開或關閉windows功能-internet信息服務-Web管理工具

安裝方法

winXP 安裝 IIS 過程
1、控制臺中“程式”的位置,“程式”中“打開或關閉Windows功能”的位置。
2、IIS安裝完成之後可以在開始選單的所有程式中看到“管理工具”,其中有一個“Internet信息服務管理器”,如果沒有可以按以下步驟添加:開始》右擊屬性》“開始”選單選項卡》自定義》把“系統管理工具”設定為“在所有程式選單顯示”或者“在所有程式選單和開始選單上顯示”。
3、打開Internet信息服務管理器就可以看到IIS的主頁了。ok,完成。

工作原理

IIS 7.0

技術參數

IIS 7.0 HTTP 狀態代碼
當您試圖通過使用 HTTP 訪問一台正在運行 Internet 信息服務 (IIS) 7.0 的伺服器上的內容時,IIS 7.0 返回一個表示該回響的狀態的數字代碼。HTTP 狀態代碼記錄在 IIS 日誌中。此外,HTTP 狀態代碼可能會顯示在客戶端瀏覽器中。
HTTP 狀態代碼可能表示請求是否成功或不成功。HTTP 狀態代碼也可能顯示請求成功的確切原因。
1xx - 信息
這些 HTTP 狀態代碼表示臨時的回響。客戶端在收到常規回響之前,應準備接收一個或多個 1xx 回響。
IIS 7.0 使用以下信息 HTTP 狀態代碼:
100 - 繼續。
101 - 切換協定。
2xx - 成功
200 - 確定。客戶端請求已成功。
201 - 已創建。 202 - 已接受。
203 - 非授權信息。
204 - 無內容。
205 - 重置內容。
206 - 部分內容。
3xx - 重定向
301 - 已被永遠移走。
302 - 對象已移動。
304 - 未修改。
307 - 臨時重定向。
4xx - 客戶端錯誤
IIS 7.0 定義以下 HTTP 狀態代碼,表明 400 錯誤的具體原因:
400.1 - 無效的目的標頭。
400.2 - 無效的深度標頭。
400.3 - 無效的如果標頭。
400.4 - 無效的覆蓋標頭。
400.5 - 無效的轉換標頭。
400.6 - 無效的請求正文。
400.7 - 無效的內容長度。
400.8 - 無效的逾時值。
400.9 - 無效的鎖定令牌。
401 - 訪問被拒絕。
IIS 7.0 定義幾個 HTTP 狀態代碼,表明 401 錯誤的具體原因:以下特定的 HTTP 狀態代碼顯示在客戶端瀏覽器中,但是不會顯示在 IIS 日誌中:
401.1 - 登錄失敗。
401.2 - 伺服器配置導致登錄失敗。
401.3 - 由於 ACL 對資源的限制而未獲得授權。
401.4 - 篩選器授權失敗。
401.5 - ISAPI/CGI 應用程式授權失敗。
403 - 禁止訪問:
IIS 7.0 定義以下 HTTP 狀態代碼,表明 403 錯誤的具體原因:
403.1 - 執行訪問被禁止。
403.2 - 讀訪問被禁止。
403.3 - 寫訪問被禁止。
403.4 - 要求SSL
403.5 - 要求 SSL 128。
403.6 - IP 地址被拒絕。
403.7 - 要求客戶端證書。
403.8 - 站點訪問被拒絕。
403.9 - 禁止:許多客戶端嘗試連線到 Web 伺服器:
403.10 - 禁止訪問:配置 Web 伺服器為拒絕執行訪問。
403.11 - 禁止訪問:密碼已更改。
403.12 - 拒絕訪問映射表。
403.13 - 客戶端證書被吊銷。
403.14 - 拒絕目錄列表。
403.15 - 禁止訪問: Client access licenses have exceeded limits on the Web server.
403.16 - 客戶端證書不受信任或無效。
403.17 - 客戶端證書已過期或尚未生效。
403.18 - 在當前的應用程式池中不能執行所請求的 URL。
403.19 - 在此應用程式池中不能執行客戶端的 CGI 應用程式。
403.20 - 禁止訪問:護照登錄失敗。
403.21 - 禁止訪問:拒絕源訪問。
403.22 - 禁止訪問:拒絕無限深度。
404 - 未找到。
IIS 7.0 定義以下HTTP 狀態代碼,表明 404 錯誤的具體原因:
404.0 - 未找到。
404.1 - 站點未找到。
404.2 - ISAPI 或 CGI 限制。
404.3 - MIME 類型限制。
404.4 - 未配置處理程式。
404.5 - 被請求篩選器配置拒絕。
404.6 - 動詞被拒絕。
404.7 - 檔案擴展名被拒絕。
404.8 - 隱藏的命名空間。
404.9 - 檔案屬性被隱藏。
404.10 - 請求標頭太長。
404.11 - 請求包含雙轉義序列。
404.12 - 請求包含高位字元。
404.13 - 內容長度太大。
404.14 - 請求 URL 太長。
404.15 - 查詢字元串太長。
404.16 - 傳送到靜態檔案處理程式的 DAV 請求。
404.17 - 動態內容通過通配符 MIME 映射映射到靜態檔案處理程式。
405 - 無效的動詞。
406 - 客戶端瀏覽器不接受所請求頁面的 MIME 類型。
408 - 請求逾時。
412 - 前提條件失敗。
5xx - 伺服器錯誤
IIS 7.0 定義以下 HTTP 狀態代碼,表明 500 錯誤的具體原因:
500.0 - 發生模組或 ISAPI 錯誤。
500.11 - 正在 Web 伺服器上關閉應用程式。
500.12 - 應用程式正忙於在 Web 伺服器上重新啟動。
500.13 - Web 伺服器太忙。
500.15 - 不允許直接請求 Global.asax。
500.19 - 配置數據無效。
500.21 - 模組無法識別。
500.22 - 無法在託管管道模式下套用 ASP.NET httpModules 配置。
500.23 - 無法在託管管道模式下套用 ASP.NET httpHandlers 配置。
500.24 - 無法在託管管道模式下套用 ASP.NET impersonation 配置。
500.50 - RQ_BEGIN_REQUEST 通知處理期間,發生重寫錯誤。發生配置或入站規則執行錯誤。

運行模式

IIS 7.0的集成模式和經典模式
IIS7.0中的Web應用程式有兩種配置模式:經典模式和集成模式。經典模式是為了與之前的版本兼容,使用ISAPI擴展來調用ASP.NET運行庫,原先運行於IIS6.0下的Web應用程式遷移到IIS7.0中只要將應用程式配置成經典模式,代碼基本不用修改就可以正常運行。集成模式是一種統一的請求處理管道,它將ASP.NET請求管道與IIS核心管道組合在一起,這種模式能夠提供更好的性能,能夠實現配置和管理的模組化,而且增加了使用託管代碼模組擴展IIS時的靈活性。如果老的Web應用程式運行於IIS7.0的集成模式下,可能需要對應用程式的web.config檔案進行修改,尤其是使用了實現IHttpHandler接口的自定義模組的情況。IIS7.0在同一個伺服器上能夠同時支持兩種模式的應用程式。
IIS6.0中ASP.NET MMC管理單元用於配置ASP.NET,7.0中ASP.NET應用程式的管理域IIS管理更加緊密的集成在一起,不存在單獨的管理單元,所有的IIS和ASP.NET配置都是使用IIS管理器完成的。IIS7.0配置信息基於.NET Framework配置系統,所以IIS7.0中運行的應用程式的web.config檔案同時包含web伺服器和ASP.NET配置設定,例如可以再web.config檔案中設定擴展名和檔案的映射(IIS6.0中必須在IIS中進行配置)。
web.config檔案的變化
system.webServer節指定了套用於web應用程式的IIS7.0設定,其父節點是configuration,該節點中可以設定的內容包括:
當請求未包含指定資源時,Web伺服器返回給客戶端的默認文檔(defaultDocument);
回響的壓縮設定(httpCompression)
自定義頭部(httpProtocol節的customHeaders)
模組(modules)
處理程式(handlers)
其中的一些設定僅適用於集成模式,而不適用於經典模式,如經典模式下運行的應用程式則忽略web.config的system.WebServer節中指定的所有託管代碼模組和處理程式,這種模式下web應用程式應該在syste.web節的httpModules和httpHandlers中定義模組和處理程式。
將 Web 應用程式遷移到集成模式
不包含自定義模組或處理程式的 Web 應用程式通常無需更改即可在 IIS 7.0 集成模式下正常工作。對於依賴於自定義模組或處理程式的 Web 應用程式,需要執行以下步驟來使其能夠在集成模式下運行:
使用本主題稍後的將Web Config檔案遷移到集成模式部分中描述的方法之一,在 Web.config 檔案的 system.webServer 節中註冊自定義模組和處理程式。
僅在自定義模組的 Init 方法中定義 HttpApplication 請求管道事件(如 BeginRequest 和 EndRequest)的事件處理程式。
請確保您已解決 Upgrading ASP.NET Applications to IIS 7.0: Differences between IIS 7.0 Integrated Mode and Classic mode(將 ASP.NET 應用程式升級到 IIS 7.0:IIS 7.0 集成模式和經典模式之間的區別)的“Known Differences Between Integrated Mode and Classic Mode”(集成模式和經典模式之間的已知區別)部分中討論的問題。
實現 IHttpModule 接口的模組被稱為託管代碼模組,因為它們是使用 .NET Framework 生成的。可以在伺服器級別或應用程式級別註冊託管代碼模組。本機代碼模組是僅在伺服器級別註冊的 DLL(非託管代碼)。在集成模式下,將以託管模組的形式實現核心 ASP.NET 功能,例如會話狀態和 Forms 身份驗證。
在將應用程式從經典模式遷移到集成模式時,可以保留經典模式下的自定義模組和處理程式註冊,也可以將這些註冊移除。如果不移除經典模式下使用的 httpModules 和 httpHandlers 註冊,則必須將 validation 元素的 validateIntegratedModeConfiguration 屬性設定為 false 以避免錯誤。validation 元素是 system.webServer 元素的子元素。有關更多信息,請參見 ASP.NET Integration with IIS 7.0(將 ASP.NET 與 IIS 7.0 集成)中的“Disabling the migration message”(禁用遷移訊息)部分。
遷移 Web.config 檔案以便在集成模式下使用
如果模組或處理程式是在應用程式級別定義的,則不會自動調用該模組或處理程式。這涉及符合以下條件的模組或處理程式:在 Bin 資料夾下的程式集中定義;在App_Code資料夾下作為原始碼定義;沒有在 Web.config 檔案的 system.webServer 節中註冊和定義。為了使模組或處理程式能夠參與集成模式請求管道,必須使用下列方法之一註冊該模組或處理程式:
直接編輯 Web.config 檔案,並且將 modules 或 handlers 元素添加到 system.webServer 元素中。請注意,與經典模式相比,元素名稱是不同的:modules 和 handlers 分別對應於經典模式下的 httpModules 和 httpHandlers。
使用 IIS 管理器配置模組或處理程式。有關更多信息,請參見 Configuring Handler Mappings in IIS 7.0(在 IIS 7.0 中配置處理程式映射)和 Configuring Modules in IIS 7.0(在 IIS 7.0 中配置模組)。
使用 IIS 7.0 命令行工具 (Appcmd.exe)。有關更多信息,請參見 Configure Settings for a Site, Application, Virtual Directory or URL by Using Appcmd.exe(使用 Appcmd.exe 配置站點、應用程式、虛擬目錄或 URL 的設定)。
使用集成模式的類和屬性
在 IIS 7.0 集成模式以及 .NET Framework 3.0 版或更高版本中使用應用程式時,可以使用下面這些在經典模式下不可用的類和成員:
HttpResponse 對象的 SubStatusCode 屬性,使用它可以設定在配置了失敗請求跟蹤的情況下有用的代碼。有關更多信息,請參見 Troubleshooting Failed Requests Using Failed Request Tracing in IIS 7.0(使用 IIS 7.0 中的跟蹤功能解決請求失敗的問題)。
HttpResponse 對象的 Headers 屬性,使用它可以訪問回響頭。
HttpContext 對象的 IsPostNotification 和 CurrentNotification 屬性,在提供 HttpApplication 事件的處理程式時可以使用它們。
HttpRequest 對象的 Headers 和 ServerVariables 屬性,它們支持寫功能。
集成模式與經典模式下請求處理管道的不同
集成模式下ASP.NET的處理管道與經典模式是不同的。集成模式下不論是傳統的ASP.NET Web Forms應用程式還是ASP.NET MVC應用程式都可以使用Routing系統(路由系統)。
Routing系統原來是為ASP.NET MVC設計的,後來也被套用於其他ASP.NET技術,包括ASP.NET Web Forms。這就是.NET Framework 3.5中Routing代碼不在System.Web.Mvc.dll而在System.Web.Routing.dll中的原因。在.NET Framework 4.0中,Routing代碼是在System.Web.dll中的。
IIS 7.0 集成PHP環境
想必不少從事網站方面工作的朋友都想在在WIN7上安裝PHP和MYSQL吧,但是在百度和google上搜尋都沒有PHP FOR IIS7 ,想要一鍵自動在WIN7上安裝PHP和MYSQL看似有點痴人說夢了。最近找到了一個國內的網站上有phpStudy,下載下來測試之後發現確實可以一鍵自動在WIN7上安裝PHP和MYSQL。
phpStudy支持IIS6,IIS7phpStudy支持IIS6,IIS7
自己配置PHP環境比較麻煩,而且容易出錯,對於怕麻煩的朋友來說選擇phpStudy一鍵自動在WIN7上安裝PHP和MYSQL是一個不錯的選擇。

相關詞條

熱門詞條

聯絡我們