在 iis 7.5 中,應用程式池有兩種執行模式:整合模式和經典模式。
應用程式池模式會影響伺服器處理託管**請求的方式。
如果託管應用程式在採用整合模式的應用程式池中執行,伺服器將使用 iis 和 asp.net 的整合請求處理管道來處理請求。
如果託管應用程式在採用經典模式的應用程式池中執行,伺服器會繼續通過 aspnet_isapi.dll 路由託管**請求,其處理請求的方式就像應用程式在 iis 6.0 中執行一樣。
經典模式:
指的是與iis 6或者之前版本保持相容的一種模式,乙個典型問題就是,在處理asp.net這種動態**的時候,它是通過乙個所謂的isapi程式,作為外掛程式的方式來工作的。針對不同的動態應用程式(例如asp,php等),會需要不同的isapi。
整合模式:
這種全新的模式,允許我們將asp.net更好地與iis整合,甚至允許我們在asp.net中編寫一些功能(例如module)來改變iis的行為(擴充套件)。整合的好處是,不再通過isapi的方式,提高了速度和穩定性。至於擴充套件,則可以使得我們對於iis以及其他型別的請求有更多的控制。
公升級過程**現了比較多的問題,前面文章也提到過幾個。這次就主要介紹下httphandler 和 httpmodule 在整合和經典模式下的區別。很多檔案上傳等都是需要使用到httpmodule去實現。我今天就出現了neatupload在iis7.5下出現未將物件引用到設計例項的錯誤。所以用httpmodule作為測試案例。
1.新建測試**webapplication,加入myhttpmodule類實現ihttpmodule介面,主要目的是測試程式是否經過了httpmodule,經過的在頁面輸出httpmodule字元。
}2、2.在iis7.5部署**,首先使用經典模式應用程式池。在web.config程式設計客棧的 的子節點 加入
kttdosuqype="system.web.handlers.scriptresourcehandler, syste version=3.5.0.0, culture=neutral, publickeytoken=31bf3程式設計客棧856ad364e35" validate="false"/>
訪問**可以發現頁面輸出如下,說明程式經過了httpmodule
直接切換應用程式池成整合模式會發現頁面輸出為空。證明程式沒有經過httpmodule。那在整合模式下httpmodule如何才能執行呢? 之前部署urlrewriter的時候查資料只知道需要 > 註冊httpmodule。仔細檢視配置檔案會發現有一段如下英文.意思大概就是iis7版本的設定。之前版本無需設定。
這樣就大概明白意思是iis7.0之後有部分web配置移動到system.webserver中。查閱相關得到答案確實如此 詳細資料見
於是在 中加入配置如下,重新整理頁面,頁面能夠輸出字元httpmodule,證明成功了。
由於在公升級過程成有乙個站點出現 http 錯誤 500.22 - internal server error 檢測到在整合的託管管道模式下不適用的 asp.net 設定
當時在比較急的情況下就直接刪除了 的子節點 程式正常執行。後面通過仔細和正常的站點對比是發現是缺少 這個導致,這個主要作用是設定不檢測 中的配置
經過這今天的折騰終於是對iis7.5上的部署有了一定了解了。
本文標題: iis7.5應用程式池整合模式和經典模式的區別介紹
本文位址:
IIS 7 5 下應用程式池的預定義賬戶
iis 7.5 下的應用程式池標識的預定義賬戶有下面幾個可選項 localservice 本地服務 帳戶是使用者組的成員之一,它擁有與 網路服務 帳戶相同的使用者許可權,但僅限於在本地計算機上使用。當應用程式池中的工作程序不需要訪問它所執行在的 web 伺服器以外的內容時,可以使用此帳戶。local...
IIS 7 5 下應用程式池的預定義賬戶
iis 7.5 下的應用程式池標識的預定義賬戶有下面幾個可選項 localservice 本地服務 帳戶是使用者組的成員之一,它擁有與 網路服務 帳戶相同的使用者許可權,但僅限於在本地計算機上使用。當應用程式池中的工作程序不需要訪問它所執行在的 web 伺服器以外的內容時,可以使用此帳戶。local...
IIS應用程式池監控
最近發現公司執行的web 應用程式池會突然停止,做的負載均衡 路由負載 又無法監測到iis應用程式池的情況,就想著通過某一種監控方式監測iis應用程式池的情況,如果處關閉狀態則立刻重新啟動.所說的iis應用程式池監控也只能算是偽監控,不喜勿噴.執行 winform windows計畫任務 1.首先獲...