2011年4月12日 星期二

DLL 之 x86 、x64 的第一次相遇

拜 Windows Server 2008 R2 之賜,去年開始正式使用 x64
因為  Windows Server 2008 R2 不再有 x86 的版本
所以當開發人員們將他們開發程式及DLL轉移到 x64 的環境中開始水土不服了
原來正常運作的DLL開始不聽話了
原來環境為 Windows Server 2008 (x86) + IIS 7.0
新環境為 Windows Server 2008 R2 (x64) + IIS 7.5


程式執行時會出現類以下的錯誤:
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B).
 
上網請谷歌大神開示後找到以下的解法
必須在 IIS 中設定可相容 32位元應用程式

開啟 IIS 管理員,在應用程式集區中找到所使用的應用程式,
如 Classic .NET Application
並點選右側的"進階設定"
 

在進階設定中找到 "啟用 32 位元應用程式",並將值改成 "True"

沒有留言:

張貼留言