客户端正在运行启用了WOW64的IIS,并且抱怨她无法加载我们的64位DLL。
有没有办法做到这一点?
此外,使用WOW64运行IIS是否意味着所有.NET代码都在32位.NET运行时下运行?
答案 0 :(得分:1)
如果IIS配置为启动将在WoW64下运行的32位W3WP.EXE,则是,在该工作进程中发生的任何事情都将以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位工作进程。