【发布时间】:2013-05-29 19:48:32
【问题描述】:
我一直致力于将临时网站从 II6 迁移到 IIS8。
IIS8 带有一个选项启用 32 位应用程序,这是一个真假标志。这个标志的解释是:
[enable32BitAppOnWin64] 如果为应用程序池设置为 True 64 位操作系统,工作进程服务于 应用程序池以 WOW64(Windows on Windows64)模式运行。在WOW64 模式下,32 位进程仅加载 32 位应用程序。
现在,如果我将其设置为 False,我的网站将停止服务,并且我收到 500 记录错误消息:
ISAPI 过滤器 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll' 由于配置问题,无法加载。目前的 配置仅支持加载为 AMD64 处理器构建的图像 建筑学。数据字段包含错误号。了解更多 关于这个问题,包括如何解决这种问题 处理器架构不匹配错误,请参阅
现在我猜他们一定是一个设置了 x86 标志的程序集,所以我按照this post 的说明使用CorFlags 进行检查。但是全部返回Any CPU,即
Version : v4.0.30319
CLR Header : 2.5
PE : PE32
CorFlags : 9
ILONLY : 1
32BIT : 0
Signed : 0
有轻微的变化,但就是这样。
那么为什么我需要将启用 32 位应用程序设置为 True?
所以我使用Process Explorer 进行了更多调查(这question 有帮助)似乎如果我将启用32 位应用程序设置为False 并且即使Corflags 说它们不需要32 位一些 dll 的图像类型确实是 32 位:
【问题讨论】:
标签: .net-4.0 x86 64-bit iis-8 corflags