下拉菜单中选择的 .NET 版本与下方显示的内容不匹配

下拉菜单中选择的 .NET 版本与下方显示的内容不匹配

Windows 2008 R2 标准版上的 IIS 7

在安装某些软件后发生了这种情况。相同的软件启用了 IIS 6 管理兼容性和其他功能,但奇怪的是它对 .NET 4.0 做了什么。

我们的.NET 应用程序在此服务器上均为 4.0,但检查此错误消息:

在此处输入图片描述

由于看起来是 2.0 编译器抛出了错误,我们做的第一件事就是检查 Web 应用程序(以及整个网站)的 .NET 版本是否已更改。然后我们看到了这个屏幕。

在此处输入图片描述

请注意,选择了 ASP.NET 4.0,但下面的属性文本框显示 2.0。

有没有简单的解决方法?我们可以从备份中恢复服务器,但这有点麻烦。我只是想知道这是否是一个已知问题,以及是否有人知道解决方法。

答案1

通常在应用程序池设置中(对于实际的应用程序池,而不是站点),您可以更改.net 框架版本。

如果应用程序更喜欢 .net 2.0,则应将其移至其他应用程序池。如果您确定它确实修复了安装程序,我还会考虑联系供应商让他们修复。

答案2

如果项目引用的程序集需要 2.0 CLR,则可能会出现此问题。

CLR 选择过程有点复杂。实际上,可以在同一个进程中并行运行多个版本的 CLR。

如果您不需要 ASP.NET 2.0,您可以使用以下命令将其删除:

%systemroot%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -u  
%systemroot%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u  

您还应确保安装了适合相应平台的 ASP.NET 4。例如,如果应用程序是 32 位的,则应安装 32 位 ASP.NET aspnet_regiis.exe。

您可能还想在 web.config 中包含以下内容。请注意,它应该指定“v4.0”而不是“v4.0.30319”。

  <startup>
    <supportedRuntime version="v4.0" />
  </startup>  

确定要加载哪个版本的运行时
http://msdn.microsoft.com/en-us/library/w671swch

相关内容