.net 4.0 为什么我的网站需要;启用32位应用程序“;?

.net 4.0 为什么我的网站需要;启用32位应用程序“;?,.net-4.0,x86,64-bit,iis-8,corflags,.net 4.0,X86,64 Bit,Iis 8,Corflags,我刚刚在把一个临时网站从II6迁移到IIS8 IIS8带有一个选项启用32位应用程序,它是一个真-假标志。此标志的说明如下: [enable32BitAppOnWin64]如果在上为应用程序池设置为True 64位操作系统,为 应用程序池以WOW64(Windows64上的Windows)模式运行。在WOW64中 模式下,32位进程仅加载32位应用程序 现在,如果我将其设置为False我的网站停止服务,我会收到一条500的日志,并显示一条错误消息: ISAPI滤波器 'C:\Windows\Mi

我刚刚在把一个临时网站从II6迁移到IIS8

IIS8带有一个选项启用32位应用程序,它是一个真-假标志。此标志的说明如下:

[enable32BitAppOnWin64]如果在上为应用程序池设置为True 64位操作系统,为 应用程序池以WOW64(Windows64上的Windows)模式运行。在WOW64中 模式下,32位进程仅加载32位应用程序

现在,如果我将其设置为
False
我的网站停止服务,我会收到一条500的日志,并显示一条错误消息:

ISAPI滤波器 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet\u filter.dll' 由于配置问题,无法加载。电流 配置仅支持加载为AMD64处理器构建的映像 建筑学数据字段包含错误号。了解更多 关于此问题,包括如何排除此类故障 处理器体系结构不匹配错误,请参阅

现在我猜它们一定是一个设置了x86标志的程序集,所以我按照使用中的说明进行检查。但是all返回
任何CPU
,即

Version    : v4.0.30319
CLR Header : 2.5
PE         : PE32
CorFlags   : 9
ILONLY     : 1
32BIT      : 0
Signed     : 0
有一些细微的变化,但这是最重要的

那么为什么我需要将启用32位应用程序设置为
True

因此,我已经使用(这有帮助)进行了更多的调查,如果我将enable 32-bit Application设置为
False
,并且即使Corflags表示它们不需要32位,但似乎有几个DLL的映像类型为32位:


我相信我终于找到了问题的症结所在

因此,这台机器似乎缺少一些x64配置。尤其是“ISAPI过滤器”配置包含标准的.net 4
aspnet\u filter.dll(C:\Windows\Microsoft.net\Framework\v4.0.30319\aspnet\u filter.dll),但不包含x64版本(C:\Windows\Microsoft.net\Framework64\v4.0.30319\aspnet\u filter.dll)

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