2011-10-13 66 views
0

客戶端正在運行啓用WOW64的IIS,並且抱怨她無法加載我們的64位DLL。使用WOW64運行IIS並加載64位DLL

有沒有辦法做到這一點?

另外,用WOW64運行IIS是否意味着所有.NET代碼都在32位.NET運行時間下運行?

回答

1

如果IIS配置爲啓動一個32位的W3WP.EXE,它將在WoW64下運行,那麼是的,在該工作進程中發生的任何事情都將在32位模式下發生,因此您將使用32位.NET運行時。

此問題的一個原因是無法加載64位DLL,因爲它們與32位進程不兼容。無論是您需要提供一個32位版本的DLL或您需要您的客戶端禁用32位W3WP.exe。

如果你的DLL是一個COM DLL,那麼你有更多的選擇:在COM +中註冊它,並讓它從IIS應用程序運行進程外。這意味着你的32位代碼可以通過COM調用機制調用64位代碼(Windows將在後臺照顧你)。

在IIS中更改此設置位於IIS中的應用程序池屬性下,並且「啓用32位應用程序」。設置爲true會強制32位工作進程;設置爲false將啓用64位工作進程。

相關問題