0

A client is running IIS with WOW64 enabled and is complaining that she cannot load our 64-bit DLL.

Is there any way to do this?

Also, does running IIS with WOW64 imply that all .NET code is running under a 32-bit .NET runtime?

4

1 回答 1

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 位工作进程。

于 2012-03-27T14:58:25.863 回答