關於IIS7的管理API的記錄 二

2021-06-21 12:49:01 字數 3826 閱讀 8890



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 許可權驗證 需要設定登入的使用者名稱及密碼,...