64位操做系統下IIS報「試圖加載格式不正確的程序」錯誤

原因:在64位操做系統下IIS發佈32位的項目,報「項目依賴的dll沒法讀取,試圖加載格式不正確的程序」錯誤。html

緣由:程序集之間的通信要麼全是64位環境下的,要麼全是32位環境下的。不能混編訪問。否則會出現「試圖加載格式不正確的程序」的錯誤。windows

解決方法:app

【C/S】asp.net

運行C/S程序比較簡單,直接在Build C/S程序的時候顯式指定爲X86(64位系統默認爲X64)就能夠了。ide

【B/S】網站

運行B/S稍稍複雜點。在創建網站的時候,又分爲兩種狀況。ui

A:創建的是「項目」:這個時候跟 C/S 的處理是同樣。操作系統

B:創建的是「網站」:只須要修改IIS的配置就能夠了。.net

i)「cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1」命令行

(enable32bitapponwin64爲1表明可運行32位應用程序),該項能夠經過 「命令行」執行一次。(此命令的做用是使IIS可以註冊32位的.net FW)

ii)64位OP默認是在IIS下注冊了64位的.net Framework的,所以還必須再註冊一個32位的.net Framework

C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>  aspnet_regiis.exe -i

 

 

另附:64位windows IIS 32位與64位轉換方法

 

64位版本的iis並不提供Microsoft OLE DB Provider for Jet驅動支持,因此,若是想在64位windows下使用asp或者asp.net鏈接access,須要將iis以32位的模式進行鏈接。如下轉載自其餘網站的64位系統下32位iis與64位之間轉換的方法。

ASP.NET 2.0,32 位版本 要運行 32 位版本的 ASP.NET 2.0,請按照如下步驟操做: 1. 單擊「開始」,單擊「運行」,鍵入 cmd,而後單擊「肯定」。 2. 鍵入如下命令啓用 32 位模式: cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 3. 鍵入如下命令,安裝 ASP.NET 2.0(32 位)版本並在 IIS 根目錄下安裝腳本映射: %SYSTEMROOT%/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i 4. 確保在 Internet 信息服務管理器的 Web 服務擴展列表中,將 ASP.NET 版本 2.0.40607(32 位)的狀態設置爲容許。

ASP.NET 2.0,64 位版本 要運行 64 位版本的 ASP.NET 2.0,請按照如下步驟操做: 1. 單擊「開始」,單擊「運行」,鍵入 cmd,而後單擊「肯定」。 2. 鍵入如下命令禁用 32 位模式: cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0 3. 鍵入如下命令,安裝 ASP.NET 2.0 版本並在 IIS 根目錄下安裝腳本映射: %SYSTEMROOT%/Microsoft.NET/Framework64/v2.0.50727/aspnet_regiis.exe -i 4. 確保在 Internet 信息服務管理器的 Web 服務擴展列表中,將 ASP.NET 版本 2.0.40607 的狀態設置爲容許。 注意:ASP.NET 2.0 的內部版本可能隨當前發行的內部版本的變化而變化。這些步驟適用於內部版本 2.0.40607。

轉自:http://www.cnblogs.com/zgqys1980/p/3713076.html

相關文章
相關標籤/搜索