將 ASP.NET 網站或 WCF 服務發布到 IIS 後,運行時拋出「嘗試加載格式不正確的程序集」錯誤,導致應用無法啟動。
核心原因是應用程式池的位數與作業系統/依賴組件不匹配。常見於 64 位系統上運行 32 位編譯的程式集,或反之亦然。
透過命令列切換 ASP.NET 版本,適用於必須全域使用 32 位模式的舊專案。
REM 卸載 64 位 ASP.NET
X:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -u
REM 註冊 32 位 ASP.NET
X:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i
注意: X 為系統盤符(通常為 C:)。此操作會影響伺服器上所有站點,請謹慎使用。
在 IIS 管理員中針對特定應用程式池啟用,不影響其他站點,風險較低。

若出現此權限錯誤,請檢查並建立目錄:
X:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
然後授予 IIS_IUSRS 或對應應用程式池身分識別「讀取/寫入」權限即可。