由于網(wǎng)站調(diào)用了一個(gè)第三方的32bit的dll,所以發(fā)布在64位的2008后,訪問(wèn)網(wǎng)站的時(shí)候出現(xiàn)加載該dll不成功的錯(cuò)誤。
解決方法:
在iis上面設(shè)置該網(wǎng)站可運(yùn)行在32位的模式下面。
步驟如下:
1、找到該網(wǎng)站所引用的應(yīng)用程序池。

2、在該應(yīng)用程序池的高級(jí)設(shè)置里面———》常規(guī)——》啟用32位應(yīng)用程序,設(shè)置該值為true

問(wèn)題解決。
下面是其他網(wǎng)友的補(bǔ)充:
部署一個(gè)WEB項(xiàng)目,在本機(jī)、本地服務(wù)器都沒(méi)有問(wèn)題,但部署到遠(yuǎn)程服務(wù)器以后,提示有個(gè)DLL無(wú)法加載:
Server Error in '/' Application.
Could not load file or assembly 'Common.Component.Repository' or one of its dependencies. An attempt was made to load a program with an incorrect format.
首先肯定的是,系統(tǒng)聲稱無(wú)法加載的DLL千真萬(wàn)確存在
其次從本機(jī)、本地服務(wù)器都沒(méi)有問(wèn)題推測(cè),似乎最有可能的原因是該遠(yuǎn)程服務(wù)器的環(huán)境有問(wèn)題。但是,遠(yuǎn)程服務(wù)器是裝了.NET4.5.2的,并且跑其他WEB項(xiàng)目都沒(méi)問(wèn)題。WEB項(xiàng)目所對(duì)應(yīng)的應(yīng)用程序池也是4.0,排除選了2.0的原因。
后來(lái)該WEB項(xiàng)目的開發(fā)者在IIS的應(yīng)用程序池上開啟了32位支持,問(wèn)題解決。原來(lái),遠(yuǎn)程服務(wù)器的是64位的WIN SERVER 2008。
在 IIS 7.x 中,要“啟用 32bit 應(yīng)用程序支持”,需要對(duì)“應(yīng)用程序池”進(jìn)行配置。將“enable32BitAppOnWin64”設(shè)置為“True”。這樣便將應(yīng)用程序池的工作進(jìn)程設(shè)置為 WOW64 模式,而在 WOW64 模式下,工作進(jìn)程將僅加載 32 位應(yīng)用程序的 32 位進(jìn)程。為了避免影響其他網(wǎng)站,可為 32bit 應(yīng)用程序的網(wǎng)站單獨(dú)創(chuàng)建一個(gè)應(yīng)用程序池。下面 gOxiA 將引導(dǎo)大家如何在 IIS 7.x 下啟用 32bit 應(yīng)用程序支持。
為 32bit 應(yīng)用程序的網(wǎng)站單獨(dú)創(chuàng)建一個(gè)應(yīng)用程序池,操作過(guò)程省略……;
打開“Internet 信息服務(wù) (IIS) 管理器”在左側(cè)窗體中展開服務(wù)器列表,找到該網(wǎng)站對(duì)應(yīng)的應(yīng)用程序池;
選中應(yīng)用程序池,并在右邊操作窗體中點(diǎn)擊“高級(jí)設(shè)置…”;
在“(常規(guī))”設(shè)置中找到“啟用 32 位應(yīng)用程序”,并將其設(shè)置改為“True” 此外,我們也可以利用命令行進(jìn)行設(shè)置,命令行參考如下:
appcmd set apppool /apppool.name:My32bitApp /enable32bitapponwin64:true
大家如果也有類似的故障錯(cuò)誤,可以用此辦法解決。
|
新聞熱點(diǎn)
疑難解答
圖片精選