64位操作系统下IIS报“试图加载格式不正确的程序”错误
緣由:在64位操作系統(tǒng)下IIS發(fā)布32位的項(xiàng)目,報(bào)“項(xiàng)目依賴(lài)的dll無(wú)法讀取,試圖加載格式不正確的程序”錯(cuò)誤。
?
原因:程序集之間的通訊要么全是64位環(huán)境下的,要么全是32位環(huán)境下的。不能混編訪問(wèn)。不然會(huì)出現(xiàn)“試圖加載格式不正確的程序”的錯(cuò)誤。
?
解決方法:
【C/S】
運(yùn)行C/S程序比較簡(jiǎn)單,直接在Build C/S程序的時(shí)候顯式指定為X86(64位系統(tǒng)默認(rèn)為X64)就可以了。
【B/S】
運(yùn)行B/S稍稍復(fù)雜點(diǎn)。在建立網(wǎng)站的時(shí)候,又分為兩種情況。
A:建立的是“項(xiàng)目”:這個(gè)時(shí)候跟 C/S 的處理是一樣。
B:建立的是“網(wǎng)站”:只需要修改IIS的配置就可以了。
i)“cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1”
(enable32bitapponwin64為1代表可運(yùn)行32位應(yīng)用程序),該項(xiàng)可以通過(guò) “命令行”執(zhí)行一次。(此命令的作用是使IIS能夠注冊(cè)32位的.net FW)
ii)64位OP默認(rèn)是在IIS下注冊(cè)了64位的.net Framework的,因此還必須再注冊(cè)一個(gè)32位的.net Framework
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>? aspnet_regiis.exe -i
?
?
另附:64位windows IIS 32位與64位轉(zhuǎn)換方法
?
64位版本的iis并不提供Microsoft OLE DB Provider for Jet驅(qū)動(dòng)支持,所以,如果想在64位windows下使用asp或者asp.net連接access,需要將iis以32位的模式進(jìn)行連接。以下轉(zhuǎn)載自其他網(wǎng)站的64位系統(tǒng)下32位iis與64位之間轉(zhuǎn)換的方法。
ASP.NET 2.0,32 位版本
要運(yùn)行 32 位版本的 ASP.NET 2.0,請(qǐng)按照以下步驟操作:
1. 單擊“開(kāi)始”,單擊“運(yùn)行”,鍵入 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 信息服務(wù)管理器的 Web 服務(wù)擴(kuò)展列表中,將 ASP.NET 版本 2.0.40607(32 位)的狀態(tài)設(shè)置為允許。
ASP.NET 2.0,64 位版本
要運(yùn)行 64 位版本的 ASP.NET 2.0,請(qǐng)按照以下步驟操作:
1. 單擊“開(kāi)始”,單擊“運(yùn)行”,鍵入 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 信息服務(wù)管理器的 Web 服務(wù)擴(kuò)展列表中,將 ASP.NET 版本 2.0.40607 的狀態(tài)設(shè)置為允許。
注意:ASP.NET 2.0 的內(nèi)部版本可能隨當(dāng)前發(fā)行的內(nèi)部版本的變化而變化。這些步驟適用于內(nèi)部版本 2.0.40607。
?
參考資料:
http://blog.csdn.net/wildboy2001/article/details/5792804
http://kitleer.blog.163.com/blog/static/9177857920102115045194/
http://topic.csdn.net/u/20100530/10/9fe9cea0-f759-4099-a840-2f57d9f63e97.html
轉(zhuǎn)載于:https://www.cnblogs.com/googlegis/archive/2011/11/21/2978767.html
總結(jié)
以上是生活随笔為你收集整理的64位操作系统下IIS报“试图加载格式不正确的程序”错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从图片中的一点取色
- 下一篇: postgresql数据库连接池pgbo