升级到 x64 会导致 HTTP 500

升级到 x64 会导致 HTTP 500

我将开发机器升级到 64 位 Win7,现在当我尝试连接到本地 ASP.Net 项目时,我得到:

HTTP 错误 500...在 ISAPI 过滤器“C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll”上调用 LoadLibraryEx 失败

对此有几个令人费解的地方;ASP.Net 项目是 .Net 2.0 ASMX,因此它使用的是 C:\Windows\Microsoft.NET\Framework\v2.0.50727。如果它在不询问我的情况下更新到 x64,它不应该使用 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ 吗?C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 来自哪里?

我打开了 IIS 管理器,为我的计算机选择的 .Net Framework 版本是 2.0.50727。我的默认应用程序池的框架版本相同。

我正在 VS2008 中进行开发,它甚至没有针对 .Net 4.0 的选项。

答案1

在我看来,您的应用程序有 32 位部分,并且您尝试在 IIS 中的 64 位应用程序池中运行它。默认情况下,64 位操作系统上的应用程序池是 64 位的。要启用 32 位模式,您需要转到应用程序池的高级属性并更改“启用 32 位应用程序”的设置。

在此处输入图片描述

答案2

尽管我的机器上安装了 .Net 2.0 Framework,并在 IIS 管理器中选择了它,但ASPNET_REGIIS它却说没有注册:

cd C:\Windows\Microsoft.NET\Framework\v2.0.50727

aspnet_regiis -lv
    4.0.30319.0 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
    4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

我不知道这是怎么可能的。重新注册 ASP.NET 2 解决了该问题:

aspnet_regiis -i
    Finished installing ASP.NET (2.0.50727)

aspnet_regiis -lv
    2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
    4.0.30319.0 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
    2.0.50727.0 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
    4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

这与升级到 Win 7 无关;那是徒劳无功的。

相关内容