windows 7
支援的iis
的版本是
iis7.5
,所以我們是基於
iis7.5
對監控資訊進行監控的。開發語言是
c#,使用的開發環境是
vs2010
。需要.net framework 4.0.
我使用了
microsoft.web.administration.dll
(mwa
)來對iis7.5
容器進行管理和監控。在
c盤直接搜尋
microsoft.web.administration.dll
即可找到該
dll,需要將該
dll引用到工程中。
上次是關於使用
iis7
的管理api
的配置,這次來寫寫我是如何使用
mwa來獲取
iis7
中的管理資料的。
下面的**列出了我用
api來獲取
iis伺服器資訊的一些函式:
表1.iis
的監控資訊展示
編號函式名
引數返回值
功能描述
1getlocaliistype
無float
獲取iis
版本號2
getsitestate
**名稱
string sitename
objectstate
獲取站點的執行狀態,共有5
種狀態,分別是
starting
,started
,stopping
,stopped
,unknown。3
getsiteamount
無int
獲取部署在
iis中所有**的數量和名稱4無
void
顯示所有站點的預設應用程式值
5getcurrentrequest
無void
執行時控制,得到當前正在處理的請求,獲取該請求的
url,請求的**
id,客戶端
ip位址,客戶端主機名,請求的時間消耗,請求在當前狀態下持續了多長時間等資訊
6getconfigpropertities
無void
獲取iis
配置資訊
configuration
的元資料
7bindingdisplay
無void
展示服務容器中所有站點的繫結資訊,繫結資訊指站點被哪個主機承載,站點使用的訪問協議等內容
8enumerateworkerprocess
無void
列舉workerprocess
的內容,乙個
對應著乙個
workerprocess
9setloadbalancer
int i
void
設定應用程式池的
loadbalancercapabilities
屬性,引數
i=0,設定為
tcplevel
,i=1
,設定為
無int
獲取當前所有對
iis的
request
的數量
iis還可以通過管理
api(
mwa)對站點進行開啟和停止。
表2: iis
的管理功能
函式名引數
返回值功能描述
startsite
string sitename
無啟動乙個站點
stopsite
string sitename
無停止乙個站點
這部分的**已經上傳,在
,做個記錄。
以下是我這次用到的一些
api和自己的理解。不全,具體可以參考
微軟官方的
msdn
文件:表3
:mwa
的主要參考
api
類型別描述
關鍵屬性及方法
servermanager
提供對iis7
的讀寫介面
servermanager.sites
:獲得部署在
iis7
上的web
站點servermanager.sitedefaults
:獲得部署在
iis7
上的站點的預設值組成的物件
servermanager.getadministrationconfiguration
:獲得administration.config
檔案的乙個配置物件
:獲得檔案的乙個配置物件
site
定義了iis
伺服器上的
web站點共有的一些屬性和方法
site.id:
獲取或者設定站點的id
site.state:
獲取正在執行的**的狀態
site.bindings:
獲取與**監聽者有關聯的
ip位址,
tcp埠以及主機資訊的集合
sitecollection
代表站點物件的集合
configurationelementcollectionbase.count
:獲取該集合中的站點物件的數量
sitecollection.getcollection
方法:返回當前配置元素的預設集合
objectstate
是乙個列舉型別,定義了
iis物件的執行狀態
starting
:表示物件在正在開始的程序中
started
:站點物件,應用程式池物件,或者工作程序物件已經被開始了
stopping
:表示物件在正在停止的程序中
stopped
:表示物件已經被停止了
unknown
:表示該物件處於乙個未知的狀態
request
代表乙個對
iis7
伺服器的單獨的請求
request.localipaddress
:獲得當前請求連線到的伺服器的
ip位址
request.localport
:獲得當前請求連線到的伺服器的
tcp埠
request.hostname
:獲得發出當前請求的機器的主機名
request.clientipaddr
:獲得遠端客戶端的
ip位址
request.connectionid
:獲得當前請求的唯一連線id
request.currentmodule
:獲取當前請求正在執行的模組名稱
request.siteidid
request.url
:獲取請求的
url
requestcollection
代表在乙個工作程序中活動請求的集合
configurationelementcollectionbase.count
:獲取該集合裡所有元素的數量
configurationelement.getcollection
:返回當前配置元素的預設集合
configuration
代表某個特別的主機,應用程式或資源的配置檔案物件
configuration.getmetadata
:獲取iis7
配置系統的元資料
IIS7的應用程式池
最近將原來的系統遷移到iis7.5上了,發現aspnetupload只能執行在 程式程式池 的 經典 模式之下,採用 整合 模式後,aspnetupload.getuploadfile始終為null,雖然改成經典不影響系統執行,但是這種模式就發揮不出iis7的優勢了,相當於以iis6的相容模式在執行...
IIS7設定Discuz NT的偽靜態
在iis7出來之前,我們大部分用的重寫元件,都是乙個叫做urlrewriter.dll的isapi元件,用配置好的規則來實現discuz nt的偽靜態。這次國慶期間,某大型遊戲站點 人數飆公升,urlrewriter.dll開始不斷報錯,所以試了試iis7官方的重寫元件,效果不錯,給大家推薦一下。宣...
win7系統下IIS7的配置
如果你的機器沒有安裝iis7,那麼請先安裝一下iis7,iis7已包含在系統中,但是一般預設的選擇時沒有安裝的,需要手動安裝一下。安裝完成之後就是最重要的配置步驟,首先開啟iis配置介面,可以通過控制面板 管理工具,也可以右擊我的電腦 管理開啟,如下 1 許可權驗證 需要設定登入的使用者名稱及密碼,...