開始前先了解

先完成可正常存取的 IIS 靜態網站. 本篇只產生首頁與不存在頁面的測試請求, 不刻意破壞正式應用程式.

IIS 記錄可能含用戶 IP, URI 與查詢參數. 不在 URL 放密碼或 token, 分享前檢查內容, 不把完整存取記錄放到公開目錄.

本系列使用 Windows Server 2022 Datacenter 繁體中文真實操作畫面. 帳號, 網路設定, 磁碟與示範數值請換成自己的環境; 選項名稱可能因版本與語言不同而異.

01找出網站 ID 與記錄位置

在 IIS 管理員選定站台, 查看"進階設定..."的 ID, 再開啟"記錄"核對格式與資料夾.

常見預設位置是 C:\inetpub\logs\LogFiles\W3SVC網站ID. 第一個自建站不一定是 W3SVC1, 必須以實際網站 ID 對上.

圖中使用內建 WebAdministration 模組讀取同一組站台設定, 本篇 FirstSite 的 ID 為 2.

Import-Module WebAdministration
Get-Website FirstSite | Select-Object Name,ID,State,PhysicalPath
(Get-Item IIS:\Sites\FirstSite).logFile |
  Format-List logFormat,directory,enabled
Windows 繁體中文實機畫面: 找出網站 ID 與記錄位置 放大圖片
從實際 FirstSite 設定核對 ID 與記錄目錄.

02確認 W3C 欄位與時間

在"記錄"選 W3C 格式, 由"選取欄位..."核對日期, 時間, URI Stem, HTTP Status, HTTP Substatus, Win32 Status 及 Time Taken.

W3C 內容時間以 UTC 記錄, 排錯時要與伺服器顯示時區換算. 檔案輪替時間的選項不代表內容時戳改成當地時間.

Import-Module WebAdministration
(Get-Item IIS:\Sites\FirstSite).logFile |
  Format-List logFormat,logExtFileFlags
Get-Date -Format o
(Get-Date).ToUniversalTime().ToString('o')
Windows 繁體中文實機畫面: 確認 W3C 欄位與時間 放大圖片
核對 W3C 格式, 記錄欄位及本機時間與 UTC 的差異.

03產生正常與不存在頁面的請求

先開啟首頁確認成功, 再請求 /missing-demo.html 取得真實 404. 記下請求時間與路徑, 不需要修改網站程式製造 500.

404 表示這次請求沒有取得指定資源. 仍要看子狀態與網站設定, 不要只看到 404 就判定網路或主機故障.

Windows 繁體中文實機畫面: 產生正常與不存在頁面的請求 放大圖片
產生正常與不存在頁面的請求的實際操作畫面.

04等待寫入並對照狀態碼

IIS 可能緩衝後才寫入記錄. 等待或由管理員執行 netsh http flush logbuffer, 再開啟該網站的最新記錄.

查看 #Fields: 標頭的欄位順序, 找到首頁的 200 與 missing-demo.html 的 404. 不要把空白分欄後的固定欄號套用到不同網站設定.

Get-ChildItem C:\inetpub\logs\LogFiles\W3SVC* -Filter *.log -Recurse |
  Sort-Object LastWriteTime -Descending |
  Select-Object -First 5 FullName,LastWriteTime
Windows 繁體中文實機畫面: 等待寫入並對照狀態碼 放大圖片
以原生記事本查看實際 W3C 記錄, 對照 #Fields 與 200/404 狀態碼.

05決定下一個檢查位置

404 可先核對路徑及預設文件, 權限相關狀態再核對執行身分與 NTFS 權限, 應用程式錯誤則比對事件檢視器與應用記錄.

保留問題前後的必要範圍即可. time-taken 的單位是毫秒, 可能包含網路等待, 不等於使用者整段上網體驗或純 CPU 耗時; 不要為排錯對外開啟詳細錯誤或刪除原記錄.

Windows 繁體中文實機畫面: 決定下一個檢查位置 放大圖片
決定下一個檢查位置的實際操作畫面.

完成後如何確認

已找到自建站的正確記錄資料夾, 並從實際記錄對照出 200 與 404. 後續排查可帶上時間, URI, 狀態與子狀態, 而不是只說網站不能開.

常見問題

檔案沒有立刻出現, 代表沒有收到請求嗎?

不一定. 可能尚未寫入, 記錄未啟用或查看了另一個網站 ID. 先核對設定與等待寫入, 再判斷請求是否抵達.

操作時需要協助?

告訴我們您停在哪個步驟, 由客服協助您確認.

聯絡客服