在沒有 appcmd 之前, 要像 apache 中的 server-status 中列出目前的 request url 只能利用 resource kit 的 request viewer, 不過在 iis7 中, 可以利用內建指令 appcmd 來查詢.
appcmd 有許多功能, 不過今天介紹的是查詢目前的 request, 先來看看說明文件:
http://technet.microsoft.com/zh-tw/library/cc772200%28v=ws.10%29.aspx
在 appcmd下, 有許多物件可供應用, 其中今天要介紹的就是 request, 不過可以操作的指令只有一個, 就是 list, 想查詢對該物件可用指令可以這樣下(以 site 為例):
>appcmd site /?
管理虛擬站台
APPCMD (command) SITE <identifier> <-parameter1:value1 …>
支援的命令:
list 列出虛擬站台
set 設定虛擬站台
add 新增虛擬站台
delete 刪除虛擬站台
start 啟動虛擬站台
stop 停止虛擬站台
(請使用 /? 取得每個命令的說明,例如 ‘appcmd.exe add site /?’。)
可以使用 list, set … 等多種操作指令, 而查詢目前的 request 則使用:
>appcmd list request
REQUEST “1400000080019834” (url:GET /xxx/xxxxx, time:1047344 msec, client:xxx.xxx.xxx.xxx, stage:SendResponse, module:IIS Web Core)
REQUEST “e20000438002e1fc” (url:GET /xxx/xxxxxx, time:71625 msec, client:xxx.xxx.xxx.xxx, stage:SendResponse, module:IIS Web Core)
….
可以很清楚地看到每個 request 的資訊, 包含 ip 及 url 及目前的狀態, 十分有用.