客户端正在运行启用WOW64的IIS,并抱怨无法加载我们的64位DLL。
有办法这样做吗?
另外,使用WOW64运行IIS是否意味着所有.NET代码都在32位.NET运行时下运行?
发布于 2012-03-27 14:58:25
如果IIS配置为启动32位W3WP.EXE (将在WoW64下运行),那么是的,在该工作进程中发生的任何事情都将发生在32位模式下,因此您将使用32位.NET运行时。
由此得出的结论是,您不能加载64位DLL,因为这些DLL与32位进程不兼容。要么您需要提供32位版本的DLL,要么需要您的客户端禁用32位W3WP.exe。
如果您的DLL是一个COM DLL,那么您还有另一个选项:在COM+中注册它,并让它从IIS应用程序中耗尽进程。这意味着您的32位代码可以通过COM调用机制调用64位代码( Windows将在幕后照顾您)。
IIS中要更改此操作的设置位于IIS中的应用程序池属性下,为“启用32位应用程序”。将设置为true强制执行32位工作进程;将设置为false可启用64位工作进程.
https://stackoverflow.com/questions/7755872
复制相似问题