【问题标题】:Why does my website need "Enable 32-bit applications"?为什么我的网站需要“启用 32 位应用程序”?
【发布时间】: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


    【解决方案1】:

    我相信我终于找到了真相!

    因此,这台机器似乎缺少某些 x64 配置。特别是 "ISAPI Filters" 配置包含标准 .net 4 aspnet_filter.dll (C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll)但不是 x64 版本(C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll

    通过与我们的基础设施人员交谈,他们建议正确设置此设置的最佳方法是“卸载 .Net 4.0 功能并重新安装” 请记住,这需要重新启动!

    【讨论】:

      猜你喜欢
      • 2015-11-23
      • 1970-01-01
      • 2013-05-13
      • 2012-03-20
      • 1970-01-01
      • 2013-07-21
      • 2013-05-17
      • 1970-01-01
      • 2021-02-21
      相关资源
      最近更新 更多