我一直致力于将临时网站从 II6 迁移到 IIS8。
IIS8 带有一个选项启用 32 位应用程序,这是一个真假标志。这个标志的解释是:
[enable32BitAppOnWin64] 如果为 64 位操作系统上的应用程序池设置为 True,则服务于应用程序池的工作进程以 WOW64(Windows 上的 Windows)模式运行。在 WOW64 模式下,32 位进程仅加载 32 位应用程序。
现在,如果我将其设置为False
我的网站停止服务并且我收到 500 记录错误消息:
由于配置问题,无法加载 ISAPI 筛选器“C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll”。当前配置仅支持加载为 AMD64 处理器架构构建的映像。数据字段包含错误号。要了解有关此问题的更多信息,包括如何解决此类处理器架构不匹配错误,请参阅
现在我猜他们一定是一个设置了 x86 标志的程序集,所以我按照这篇文章中的说明使用CorFlags来检查这一点。但是全部返回Any CPU
,即
Version : v4.0.30319
CLR Header : 2.5
PE : PE32
CorFlags : 9
ILONLY : 1
32BIT : 0
Signed : 0
有轻微的变化,但多数民众赞成在 jist。
那么为什么我需要将启用 32 位应用程序设置为True
?
所以我使用Process Explorer进行了更多调查(这个问题有帮助),似乎如果我将启用 32 位应用程序设置为False
,即使 Corflags 说它们不需要 32 位,一些 dll 确实具有图像类型32位: