Windows 2008 R2 Standard上的IIS 7
这发生在安装一些软件之后。 相同的软件启用IIS 6pipe理兼容性和其他的东西,但奇怪的是它对.NET 4.0做了什么。
我们的.NET应用程序在这个服务器上都是4.0,但是检查这个错误信息:

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

请注意,ASP.NET 4.0被选中,但下面的属性文本框表示2.0。
有这个简单的解决办法吗? 我们可以从备份中恢复服务器,但是有点麻烦。 我只是想知道这是不是一个已知的问题,如果有人知道修复。
通常在应用程序池设置(对于实际的应用程序池,而不是站点),您可以更改.net框架版本。
如果应用程序更喜欢.net 2.0,则应将其移至不同的应用程序池。 如果你确定的话,我也考虑联系供应商让他们修复他们的安装程序。
如果项目具有需要2.0 CLR的引用程序集,则会发生此问题。
CLRselect过程有点复杂。 实际上可以在同一个进程中并行运行多个版本的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