我开发了一个在32位上运行良好的ISAPI过滤器。我还使用VS2005交叉编译器将其编译为64位。但是,当我尝试在带有IIS-7.5的Windows 2008 R2 64位服务器上运行它时,它不起作用。似乎已经加载了过滤器DLL,但IIS没有对它做任何事情。我使用以下命令来检查它。
tasklist / m mydll *
有什么建议
答案 0 :(得分:3)
是否有特殊原因需要DLL为64位?通过执行以下操作,我已经能够在64位计算机上运行32位ISAPI过滤器:
确保IIS应用程序池设置为允许32位应用程序(默认情况下已关闭)
使用32位版本的regsvr32注册DLL:C:\ Windows \ SysWow64 \ regsvr32.exe
使用Dependency Walker验证DLL是否缺少任何依赖项:http://www.dependencywalker.com/
答案 1 :(得分:1)
对于64位,问题是注册表: 我的问题 对于32位,注册表中的apache重定向器的位置是: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Apache Software Foundation \ Jakarta Isapi Redirector \ 1.0]
但是对于64位位置必须是: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Apache Software Foundation \ Jakarta Isapi Redirector \ 1.0]
请注意“Wow6432Node”。
所以只需在Wow6432Node上重新创建32位然后就可以了。