GZIP 壓縮配置無誤、權限正確、ISAPI 篩選器逐個排查後仍不生效?真兇可能藏在「主目錄 → 配置 → 通配符應用程式映射」裡。本文記錄一次耗時一週的排查實戰,揭示非標準映射如何攔截壓縮模組。
metabase.xml 中 HcDoDynamicCompression/HcDoStaticCompression 為 TRUE,壓縮目錄權限給 IIS_WPG/NETWORK SERVICE。* 映射到自定義 DLL。刪除該映射 → 重啟 IIS → HTTP 響應頭即出現 Content-Encoding: gzip,線上檢測工具確認生效。通配符映射 (*) 會攔截 所有 請求(含靜態文件、動態腳本),導致請求在進入 IIS 靜態/動態壓縮模組前,先被自定義 DLL 處理。若該 DLL 未正確傳遞壓縮相關的 Server Variables (如 HTTP_ACCEPT_ENCODING) 或未調用後續通知,壓縮模組永不觸發。
.aspx, .php) 或原生模組 (Managed Modules)。SF_NOTIFY_SEND_RAW_DATA 等通知,透傳壓縮協商頭。已將問題反饋給該通配符映射開發商,要求修復兼容性。臨時方案:在該網站下建立獨立應用程式池,隔離風險。