4

我在尝试使用 Apache ISAPI 重定向器从 IIS 7 到 Tomcat 时遇到错误,但仅限于 32 位 W2K8 SP2 标准版。

它在 64 位 W2K8 R2 和 32 位 W2K3 上运行良好。

我已经验证我有正确的 32 位库(版本 1.2.32 或 1.2.37)。事实上,完全相同的库适用于 32 位 W2K3。过滤器已启用并被允许,并且对库文件夹和注册表项具有权限。

当我重命名库时,我得到一个不同的错误:“在 ISAPI 过滤器上调用 LoadLibraryEx ......失败” - 错误代码 0x8007007e。我看起来不像是权限问题。

确切的错误文本是“在 ISAPI 过滤器上调用 GetFilterVersion “....\isapi_redirector_1.0.dll”失败”- 错误代码 0x80070002

错误日志显示:HTTP Filter DLL …\isapi_redirector_1.0.dll 未能加载。源 = IIS-W3SVC-WP。错误代码是 02 00 00 00

所有指针将不胜感激。

4

1 回答 1

0

这可能有多种原因。一些最常见的是:

  1. 未解决 32 位 DLL 的某些依赖项。使用 Dependency walker 打开此 DLL 并检查其中是否存在任何错误(跳过其中的警告)。在大多数情况下,所有依赖库都存在,在这种情况下,可能会出现 LoadLibraryEx 错误,因为特定版本的 VC 可再发行组件不存在(如果 DLL 是从 VS 2010 构建的,则需要 VC 2010 可再发行组件)。
  2. 此 DLL 的读取权限不适用于运行您的网站的应用程序池。检查您网站的属性以查看用户并确保该用户具有 DLL 的权限。
于 2015-02-24T09:57:32.080 回答