我想創造一個功能是通過一個64位的DLL執行的Web服務。當我嘗試構建此服務時,出現錯誤「試圖加載格式不正確的程序」。 但是,當我運行一個32位的DLL它工作正常。試圖加載程序格式不正確的錯誤
我想在C#.NET的框架4中的Visual Studio 2012運行
我試圖改變在IIS應用程序池的設置和改變建立平臺的目標任何CPU。無法確定問題來自何處。請爲您提供幫助。謝謝
我想創造一個功能是通過一個64位的DLL執行的Web服務。當我嘗試構建此服務時,出現錯誤「試圖加載格式不正確的程序」。 但是,當我運行一個32位的DLL它工作正常。試圖加載程序格式不正確的錯誤
我想在C#.NET的框架4中的Visual Studio 2012運行
我試圖改變在IIS應用程序池的設置和改變建立平臺的目標任何CPU。無法確定問題來自何處。請爲您提供幫助。謝謝
如果你的Web服務引用64個DLL必須編譯到x64
右鍵點擊你正在使用的應用程序池,去Advanced Settings
。在(General)
下有一個名爲Enable 32-Bit Applications
的設置。如果您在64位操作系統上運行,並且設置爲true
,則應用程序池將是32位進程,因此您的64位DLL將不會加載。將其設置爲false
以使您的應用程序池成爲64位進程。
此外,檢查你正在構建爲64位的DLL的依賴。它可能使用一個32位的dll /程序集。如果您的代碼中有任何[DllImport]
屬性,請查看它們所引用的.dll並確保它們與64位兼容。
儘量不要使用32位或64位的DLL混合AnyCPU彙編(DLL可以編譯爲32位或64位或兩者) - 行爲將依賴於平臺,在某些環境中,將工作,在一些不是。
我試圖改變這個平臺到x64,但它仍然沒有工作。 – snab