Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

解決 IIS「無法載入 ISAPI 篩選器」錯誤:ASP.NET 版本衝突與 64 位元相容性完整處理

編輯:關於伺服器

錯誤現象

IIS 6.0 (Windows Server 2003 x64) 啟動網站時,事件日誌記錄:

無法載入 ISAPI 篩選器 'C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll'
當前配置只支援載入為 AMD64 處理器架構建立的映像

網站偽靜態 (ISAPI Rewrite) 等功能失效。

根本原因分析

  • 64 位元作業系統預設 IIS 以 64 位元模式運行 (應用程式集區 64 位元)。
  • 錯誤訊息指出嘗試載入 32 位元的 aspnet_filter.dll (路徑含 Framework 而非 Framework64),架構不匹配。
  • 常見於安裝 32 位元元件 (PHP、舊版 ISAPI Rewrite、ASP.NET 1.1) 並註冊為全域 ISAPI 篩選器。

解決方案一:移除不相容的 ISAPI 篩選器 (最快)

  1. 開啟 IIS 管理員 → 右鍵「網站」→「屬性」→「ISAPI 篩選器」標籤。
  2. 找到帶有紅色向下箭頭 (狀態異常) 的篩選器項目 (通常為 ASP.NET_2.0.50727 指向 Framework 目錄)。
  3. 選中該項 → 點擊「移除」→ 確定。
  4. 右鍵「網站」→「所有工作」→「重新啟動」(或 iisreset)。
IIS ISAPI 篩選器標籤:移除紅箭頭項目

ISAPI 篩選器標籤:移除狀態異常 (紅向下箭頭) 的 32 位元篩選器

解決方案二:啟用 IIS 32 位元模式 (若必須運行 32 位元應用)

若網站確實需載入 32 位元 ISAPI 擴充/篩選器 (如舊版 PHP、ASP.NET 1.1、特定元件),必須將整個 IIS 工作進程切換為 32 位元模式 (WOW64)。

  1. 開啟命令提示字元 (系統管理員)。
  2. 執行指令:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
  1. 輸出 Enable32bitAppOnWin64 : (BOOLEAN) TRUE 表示成功。
  2. 執行 iisreset 重新啟動 IIS。
重要影響: 啟用 32 位元模式後,所有 應用程式集區將以 32 位元運行,64 位元專用元件將無法載入。請確認所有網站應用相容後再執行。

驗證與後續

  • 移除篩選器法:網站啟動無錯誤,偽靜態等 64 位元 ISAPI 正常運作。
  • 32 位元模式法:32 位元元件可載入,但需注意記憶體限制 (單進程 2-4 GB) 與 64 位元元件衝突。
  • 建議:新專案優先遷移至 64 位元原生元件 (PHP 7+、ASP.NET 2.0+ 64 位元、ISAPI Rewrite 3.x 64 位元),避免架構混雜。
Copyright © Windows教程網 All Rights Reserved