Windows XP Professional 與 Windows 2000 Professional 內建的 IIS 5.0/5.1 預設將同時連線數鎖定在 10,導致本機測試或小型部署頻繁出現「Server Too Busy」。本文示範使用 Microsoft 釋出的 MetaEdit 2.2 修改中繼資料庫,將連線上限調大,並說明適用範圍與風險。
https://image.21tx.com/files/20040410/10116.exe (MetaEdit 2.2 安裝包)MtaEdt22.exe 依精靈完成安裝LM → W3SVC → Info10 → 修改為 100 或更大 (視記憶體/CPU 而定)iisreset 或「服務」重啟 IISADMIN / W3SVC# 使用 ab 壓測
ab -n 500 -c 50 https://localhost/test.asp
# 觀察「Non-2xx responses」是否為 0
或於瀏覽器開 20+ 分頁同時請求,不再出現 503 即成功。
IIS 5.x 中繼資料庫鍵值 LM/W3SVC/Info/MaxConnections 直接控制 w3svc 接受佇列長度。MetaEdit 實際上是 IMSAdminBase 介面的圖形化前端,修改後即時生效於記憶體內映射。
| 風險 | 說明 |
|---|---|
| 穩定性 | 超過 10 連線屬非官方支援,高併發可能觸發記憶體洩漏、執行緒耗盡導致 w3wp.exe 崩潰 |
| 授權合規 | EULA 明確限制 Workstation 版 IIS 為 10 連線,生產環境修改屬違反授權 |
| 安全性 | 開放更多連線擴大攻擊面,需配合 URLScan/Request Filtering 限制惡意請求 |
| 鍵值路徑 | 用途 | 建議值 |
|---|---|---|
| 應用程式集區執行緒上限 | 視 CPU 核心數 × 20-50 | |
| 閒置連線逾時 (秒) | 120-300 | |
| 特定站點佇列長度 | 1000-5000 |
修改前請備份中繼資料庫:MetaEdit →「檔案」→「備份/還原」→「備份」。