相信有不少攻城獅都有管理IIS站台的經驗,有時會遇到IIS突然無法連線等狀況發生,
大概大部份的人會在Command視窗下iisreset /restart指令,讓IIS重啓看看,真的再不行就重開機,
也有人會針對消耗資源多的應用程式集區,在User的離峰時間去設定自動回收重啓。
以上都是治標不治本的方法...
因為系統有了問題要去釐清可能的問題點,而不是妄加猜測是資料庫、應用程式、網路所導致的,
小弟建議可先從IIS本身提供的Log來進行分析,
開啟"Internet Information Services(IIS)管理員"->"記錄",查看記錄檔所存放的目錄。
點"選取欄位",可勾選要紀錄的資料欄位
由於IIS Log檔中的資料是很繁雜的,僅用記事本來查看要分析出有用的資訊是有難度的,
因此小弟介紹使用BULK INSERT的功能將IIS Log大量匯入至表格中再來找尋有用的資料,
這樣子會便捷許多。
IIS Log檔的內容如下
首先,先依據Log檔裡資料的標頭來建立張資料表供匯入資料使用
CREATE TABLE IIS_Log(
[date] date null,
....
....
)
接著使用以下script將IIS Log檔匯入剛建的表格裡
BULK INSERT IIS_Log FROM 'C:\inetpub\logs\Logfiles\W3SVC1\u_ex18023.log'
WITH (
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
}
順利匯入後,即可使用SQL來分析各網頁的歷程紀錄。
通常在網站開發時測不出來的問題,可能在網站上線後一段時間後爆發出來,
此時善用Log檔可以有助於了解整個網站的運作情況以及問題點的釐清。