Download - Web 應用程式與 IIS 6.0 整合技術探討
大綱大綱 IIS 6.0 IIS 6.0 架構架構 IIS 6.0 IIS 6.0 應用程式隔離模式應用程式隔離模式 IIS 6.0 IIS 6.0 強化的新功能強化的新功能
穩定性穩定性 效能效能 管理方式管理方式 安全性安全性 和和 ASP.NETASP.NET 整合的能力整合的能力
DLLHOST.exeDLLHOST.exe
ISAPIISAPIExtensionsExtensions(ASP, etc.)(ASP, etc.)
ISAPI FiltersISAPI Filters
metabasemetabase
IIS 6.0 IIS 6.0 架構架構IIS 5.0 IIS 5.0 到 到 IIS 6.0 IIS 6.0 的轉變的轉變
TCP/IPTCP/IP
INETINFOINETINFO
ASP.NETASP.NETISAPIISAPI
Aspnet_wp.exeAspnet_wp.exe
CLR App DomainCLR App Domain
CLR App DomainCLR App Domain
CLR App DomainCLR App Domainmetabasemetabase
INETINFOINETINFO W3WP.EXEW3WP.EXE
應用程式集區應用程式集區 11
ASP.NET ISAPIASP.NET ISAPI
CLR App DomainCLR App Domain
CLR App DomainCLR App Domain
W3WP.EXEW3WP.EXE
ISAPIISAPIExtensionsExtensions(ASP, etc.)(ASP, etc.)
ISAPI FiltersISAPI Filters
應用程式集區應用程式集區 22
W3WP.EXEW3WP.EXE
ASP.NET ISAPIASP.NET ISAPI
CLR App DomainCLR App Domain
CLR App DomainCLR App Domain
W3WP.EXEW3WP.EXE
ASP.NET ISAPIASP.NET ISAPI
CLR App DomainCLR App Domain
CLR App DomainCLR App Domain
W3WP.EXEW3WP.EXE
ASP.NET ISAPIASP.NET ISAPI
CLR App DomainCLR App Domain
CLR App DomainCLR App Domain
Web GardenWeb Garden
W3WP.EXEW3WP.EXE
ISAPIISAPIExtensionsExtensions(ASP, etc.)(ASP, etc.)
ISAPI FiltersISAPI Filters
WASWAS
Co
nfi
g M
gr
Co
nfi
g M
gr
Pro
ce
ss
Mg
rP
roc
es
s M
gr
HTTP.SYSHTTP.SYS Namespace MapperNamespace Mapper
HTTP EngineHTTP Engine
ResponseResponseCacheCache
Req
Qu
eue
Req
Qu
eue
Req
Qu
eue
Req
Qu
eue
Req
Qu
eue
Req
Qu
eue
Send ResponseSend Response
IIS 6.0 IIS 6.0 主要架構成員主要架構成員 IISIIS管理服務 管理服務 (InetInfo.exe)(InetInfo.exe)
提供提供 IISIIS管理工作管理工作、、SMTPSMTP、、NNTPNNTP、、FTPFTP等服務等服務 WWW WWW 管理服務 管理服務 (WAS)(WAS)
工作處理序管理工作處理序管理 組態管理組態管理
HTTP.sysHTTP.sys 負責處理負責處理RequestRequest 提供提供CacheCache、、QueueQueue等功能等功能
工作處理序 工作處理序 (W3WP.exe)(W3WP.exe)
IIS IIS 管理服務管理服務InetInfo.exeInetInfo.exe 主要工作主要工作
管理管理 MetabaseMetabase 提供非提供非 HTTPHTTP 的相關服務的相關服務
SMTP SMTP 簡易郵件傳送通訊協定服務簡易郵件傳送通訊協定服務 NNTP NNTP 網路新聞傳輸通訊協定服務網路新聞傳輸通訊協定服務 FTP FTP 檔案傳輸通訊協定服務檔案傳輸通訊協定服務
IIS IIS 管理服務不執行任何管理服務不執行任何 WebWeb 應用程式應用程式 確保 確保 Web server Web server 可靠性可靠性 應用程式錯誤無法影響應用程式錯誤無法影響 Web serverWeb server
WWW ServiceWWW Service
主要工作主要工作 設定 設定 HTTP.sysHTTP.sys 讀取並監視 讀取並監視 Metabase Metabase 設定改變設定改變 管理工作處理序管理工作處理序
WWW Service WWW Service 不執行任何不執行任何 WebWeb 應用程式應用程式 確保 確保 Web server Web server 可靠性可靠性 應用程式錯誤無法影響應用程式錯誤無法影響 Web serverWeb server
工作處理序工作處理序W3WP.EXEW3WP.EXE
全部的全部的 WebWeb 應用程式皆使用 應用程式皆使用 ““ Out of Out of Process”Process” 方式執行方式執行
完整的隔離系統元件與其它的 完整的隔離系統元件與其它的 Web Web 應用應用程式程式
當不正常時可以隔離工作處理序進行偵錯當不正常時可以隔離工作處理序進行偵錯 Demand Start: Demand Start: 工作處理序將在需要時工作處理序將在需要時
才建立,在非使用狀況則被釋放才建立,在非使用狀況則被釋放
Demand StartDemand Start 10:02am10:02am - Web Server - Web Server 啟動啟動
HTTP.sysHTTP.sysHTTP.sysHTTP.sys
沒有任何應用程式集區執行緒被建立沒有任何應用程式集區執行緒被建立
接聽 Port 80 要求
Working Set: 6,772K
Demand StartDemand Start 10:05am10:05am – – 收到 收到 HR Application HR Application 要求要求
HTTP.sysHTTP.sysHTTP.sysHTTP.sys
HR Application Pool HR Application Pool 啟動啟動
GET http://HRPayroll
W3wp.exeW3wp.exeW3wp.exeW3wp.exe
HR PayrollHR Payroll
HR RecruitingHR Recruiting
Working Set: 33,784K
Demand StartDemand Start 10:10am10:10am – – 收到 收到 ERP Application ERP Application 要求要求
HTTP.sysHTTP.sysHTTP.sysHTTP.sys
ERP Application Pool ERP Application Pool 啟動啟動
GET http://ERPortal
W3wp.exeW3wp.exeW3wp.exeW3wp.exe
HR PayrollHR Payroll
HR RecruitingHR Recruiting
W3wp.exeW3wp.exeW3wp.exeW3wp.exe
ERP ApplicationERP Application
ERP UtilityERP Utility
Working Set: 40,208K
Demand StartDemand Start 10:25am10:25am – HR Application Pool – HR Application Pool 超過等後逾時時間後自動結束 超過等後逾時時間後自動結束
HTTP.sysHTTP.sysHTTP.sysHTTP.sys
HR Application Pool Process is de-allocatedHR Application Pool Process is de-allocated
W3wp.exeW3wp.exeW3wp.exeW3wp.exe
HR PayrollHR Payroll
HR RecruitingHR Recruiting
W3wp.exeW3wp.exeW3wp.exeW3wp.exe
ERP ApplicationERP Application
ERP UtilityERP Utility
Still listening on HR and other endpoints
Working Set: 13,196K
HTTP.SYSHTTP.SYS
將要求的 將要求的 URL URL 導向到 導向到 IIS IIS 應用程式集區應用程式集區 當應用程式無法使用的時候將 當應用程式無法使用的時候將 HTTP ReqHTTP Req
uestuest 存放在佇列 中存放在佇列 中 在核心中提供靜態與動態網頁內容的在核心中提供靜態與動態網頁內容的 RespResp
onseonse 快取,避免快取,避免 context switchingcontext switching 使用 使用 Kernel cache Kernel cache 大幅提高 大幅提高 throughputthroughput
不載入或執行任何應用程式碼不載入或執行任何應用程式碼 不受到 不受到 Web Web 應用程式失敗或錯誤的影響應用程式失敗或錯誤的影響
應用程式集區介紹應用程式集區介紹 IIS 5 IIS 5 提供 提供 1 1 個 “集區” 程個 “集區” 程
序序 IIS 6 IIS 6 應用程式集區應用程式集區
建立一個或多個集區建立一個或多個集區 設定名稱設定名稱 指派在網站、目錄或是虛擬目指派在網站、目錄或是虛擬目
錄的應用程式到任何一個集區錄的應用程式到任何一個集區中中
每個集區程序分別設定健康偵每個集區程序分別設定健康偵測、執行身分、回收測、執行身分、回收
允許高可用性與隔離允許高可用性與隔離 Site/Site/ 用戶用戶 功能性功能性 可靠性可靠性 安全性安全性
Side by side Side by side 技術能讓不同技術能讓不同版本元件在單一伺服器上執行版本元件在單一伺服器上執行
IIS 6.0 IIS 6.0 應用程式隔離模式應用程式隔離模式 工作處理序隔離模式工作處理序隔離模式
IIS 6.0 IIS 6.0 重新設計的架構重新設計的架構 預設身分識別為 預設身分識別為 NetworkServiceNetworkService 以工作處理序當作隔離的單位以工作處理序當作隔離的單位
IIS 5.0 IIS 5.0 隔離模式隔離模式 提供和提供和 IIS 5.0IIS 5.0相容的環境相容的環境 預設身分識別為 預設身分識別為 LocalSystemLocalSystem 依隔離層級分低、中、高依隔離層級分低、中、高
注意:注意: IIS 6.0 IIS 6.0 不能同時執行這兩種隔離模式不能同時執行這兩種隔離模式
IIS 6.0 IIS 6.0 強化的新功能強化的新功能使用工作處理序隔離模式的優點使用工作處理序隔離模式的優點 更 好 的 穩 定 性 自 動 資 源 管 理 自 我 狀 態 偵 測 自 訂 身 份 識 別
更好的穩定性更好的穩定性不再因為某個應用程式失敗而影響其他應用程式不再因為某個應用程式失敗而影響其他應用程式
工作處理序完全隔離 工作處理序完全隔離 所有的工作處理序直
接對 Kernel 溝通 工作處理序之間無法
亙相影響 Kernel 模式下提供快取和佇列功能
應用程式集區應用程式集區 Web gardens
HTTP.sysHTTP.sys
WWWWWWServiceService
工作處理序工作處理序
ISAPI FiltersISAPI Filters
ISAPIISAPIExtensionsExtensions
工作處理序工作處理序
ISAPI FiltersISAPI Filters
ISAPIISAPIExtensionsExtensions
應用程式集區應用程式集區 應用程式集區應用程式集區
自動資源管理自動資源管理工作處理序回收處理及效能設定工作處理序回收處理及效能設定
工作處理序回收處理:工作處理序回收處理: 工作時間工作時間 使用者提出的使用者提出的 RequestRequest 數量數量 固定時間週期固定時間週期 記憶體最大使用量記憶體最大使用量 立即要求立即要求
效能設定效能設定 閒置時間 Request Queue Request Queue CPUCPU 使用量使用量
Web GardenWeb Garden
應用程式集區設定應用程式集區設定 可啟動的工作處理序個數可啟動的工作處理序個數
組態檔內組態檔內 SMPAffinitized SMPAffinitized 決定是否設定決定是否設定 CPU AffinityCPU Affinity SMPProcessorAffinityMask SMPProcessorAffinityMask 決定決定 CPUCPU 配置配置
自我狀態偵測自我狀態偵測健康情況健康情況
定期定期 PingPing 工作處理序工作處理序 無回應時,另外啟動一個新的工作處理序執行無回應時,另外啟動一個新的工作處理序執行
啟動”快速失敗保護”機制啟動”快速失敗保護”機制 防止在短時間內發生異常的連續失敗防止在短時間內發生異常的連續失敗 (503)(503) 經由在單位時間發生失敗的次數決定經由在單位時間發生失敗的次數決定 結果:停止該工作處理序結果:停止該工作處理序
自訂身份識別自訂身份識別決定在應用程式集區內的身份識別決定在應用程式集區內的身份識別
內建身份識別內建身份識別 LocalSystem - LocalSystem - 權限最高權限最高 NetworkService - NetworkService - 權限低,可以存取網路上的權限低,可以存取網路上的
資源資源 LocalService - LocalService - 權限最低,只能存取本機資源權限最低,只能存取本機資源
自訂身份識別自訂身份識別 必須加入到必須加入到 IIS_WPGIIS_WPG 群組群組
管理功能的改良管理功能的改良更容易管理 新的系統管理功能新的系統管理功能
可以搬移或複製網站及虛擬目錄的組態設定到可以搬移或複製網站及虛擬目錄的組態設定到其他位置其他位置
組態資料透過密碼保護組態資料透過密碼保護 可以透過使用者介面或可以透過使用者介面或 ADSI/WMI APIADSI/WMI API 管理管理
XML MetabaseXML Metabase XML BaseXML Base ,用來設定,用來設定 IIS 6.0IIS 6.0 的組態定義檔的組態定義檔
管理功能的改良管理功能的改良XML MetabaseXML Metabase
Text BaseText Base ,任何文字編輯器都可以編輯,任何文字編輯器都可以編輯 自動版本控管及記錄歷史資料自動版本控管及記錄歷史資料 自動建立備份自動建立備份 可以在可以在 IISIIS 執行服務時修改資料執行服務時修改資料 複製整個網站或應用程式複製整個網站或應用程式
效能的改良 效能的改良 動態核心快取動態核心快取
GET http://www.netmag.com.tw/magList.aspxGET http://www.netmag.com.tw/magList.aspx
沒有沒有CacheCache
Cache
Network Stack
HTTP.SYS
W3WP.EXE (IIS6.0)
ASP.NET/CLR
User Application
UserKernel
Database
使用使用CacheCache
RequestRequest ResponseResponse
<%@ OutputCache Duration="10" VaryByParam="none" %>
Cache
Network Stack
HTTP.SYS
W3WP.EXE (IIS6.0)
ASP.NET/CLR
User Application
UserKernel
Database
RequestRequest ResponseResponse
安全性的改良安全性的改良產品異動的部分產品異動的部分 預設不會安裝預設不會安裝 IISIIS IISIIS 預設只提供靜態文件讀取預設只提供靜態文件讀取 不允許透過不允許透過 IISIIS 執行命令模式下的程式 執行命令模式下的程式 IISIIS 透過權限很低的帳戶執行透過權限很低的帳戶執行 加強預設的安全性加強預設的安全性 更多限制及更多限制及 TimeoutTimeout
安全性的改良安全性的改良新的驗證方式新的驗證方式 進階摘要式驗證進階摘要式驗證
類似類似 IIS 5.0IIS 5.0 的摘要式驗證,會將使用者憑證透過的摘要式驗證,會將使用者憑證透過 HashHash 方式存放於方式存放於 ADAD 上上 .NET Passport.NET Passport
描述提供單一登入安全,給予使用者存取網際網路上多種服務的驗證方描述提供單一登入安全,給予使用者存取網際網路上多種服務的驗證方法法
預設登入網域預設登入網域
和和 ASP.NETASP.NET 整合的部份整合的部份相較相較 IIS 5.0IIS 5.0 的差異處的差異處 安裝安裝 IIS 6.0IIS 6.0 後預設沒有使用後預設沒有使用 ASP.NETASP.NET 在工作處理序隔離模式下在工作處理序隔離模式下
身份識別為身份識別為 NetworkServiceNetworkService 原本的原本的 <processModel><processModel> 設定大部份都被設定大部份都被
IIS 6.0IIS 6.0 取代取代 工作處理序為工作處理序為 w3wp.exew3wp.exe
透過透過 IIS 6.0IIS 6.0 來維護來維護 WebWeb 應用程式應用程式 執行效能較佳執行效能較佳
結論結論 為了充份發揮為了充份發揮 IIS 6.0IIS 6.0 的新功能的新功能
使用工作處理序隔離架構使用工作處理序隔離架構 效能、穩定性、延展性效能、穩定性、延展性
MetabaseMetabase 讓讓 IIS 6.0IIS 6.0 容易部署、備份及復原容易部署、備份及復原
對對ASP.NET WebASP.NET Web 應用程式的影響應用程式的影響 透過透過 IIS 6.0IIS 6.0 管理應用程式資源管理應用程式資源 使用新的處理序身份識別 使用新的處理序身份識別 NetworkServiceNetworkService
參考資源參考資源 IIS Community PortalIIS Community Portal
http://www.microsoft.com/windowsserver2003/community/centers/iis/dhttp://www.microsoft.com/windowsserver2003/community/centers/iis/default.mspxefault.mspx
IIS PortalIIS Portal http://www.microsoft.com/http://www.microsoft.com/iisiis
Third-party sitesThird-party sites http://http://iisanswers.comiisanswers.com http://http://iisfaq.comiisfaq.com