5

我正在 Windows XP 和 Visual Studio 2008 上开发一个 ASP.NET MVC Web 应用程序(使用 Visual Studio Web 服务器)。我最近安装了 Windows 7 64 位终极版 IIS 7.5 并使用appcmd.

enable32BitAppOnWin64 == false如果我在我的应用程序池上设置标志,我的应用程序工作正常。一旦我将它设置为 true(因为我希望它以 64 位运行),它就会抛出这个异常:

错误截图

HTTP Error 500.0 - Internal Server Error
Calling LoadLibraryEx on ISAPI filter "C:\Windows\Microsoft.NET\Framework\v2.0.50727\\aspnet_filter.dll" failed

如果我去删除所有 ISAPI 过滤器但离开ASP.Net_2.0.50727-64,那么这个错误就会消失。

我该如何解决这个问题?

4

4 回答 4

3

您的密钥位于错误中提到的路径中:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\\aspnet_filter.dll

请注意路径中有一个额外的斜杠。在提升的命令提示符下,导航到../Framework/v2.0.50272目录并运行以下命令:

aspent_regiis -r

或者,使用 IIS 修改过滤器的正确路径。

所以不需要魔法尘埃......你只需要注册正确的路径。:)

于 2010-01-10T15:26:53.023 回答
1

听起来您需要一些 64 位 ISAPI 过滤器。

32 位 DLL 将无法在 64 位机器上运行,除非你在它们上面撒上一些神奇的精灵粉。这就是enable32BitAppOnWin64标志存在的原因。

竖起旗帜true,沐浴在精灵尘埃的荣耀中。

于 2009-11-07T23:04:04.213 回答
0

听起来preConditions您网站的处理程序映射有点混乱。在 IIS MMC 中浏览到该站点并打开处理程序映射功能。在右侧的“操作”窗格中,单击“还原为父级”链接。

于 2009-11-10T14:10:42.867 回答
0

刚刚在项目部署中发生了这种情况。更改网站的应用程序池就可以了。在Rick Strahl 的博客上找到答案

于 2012-10-26T00:02:42.337 回答