我试图加载我的网站,我得到这个错误消息:

无法识别的属性'targetFramework'。注意,属性名是区分大小写的。

<compilation debug="true" targetFramework="4.0">

该网站在我的本地PC上运行良好,但当我将其加载到主机并试图在线查看时,它无法打开。


当前回答

以下2个步骤将强制刷新Visual Studio和IIS Express缓存,通常可以解决类似的问题:

简单地将Project框架从4+切换到.Net framework 3.5并运行它 如果它成功运行,你可以将它恢复到你想要的4+目标框架,并看到它可能会再次工作。

其他回答

刚刚有这个问题部署一个新的应用程序到一个旧的IIS盒子。调查导致安装了v4.5.1运行时,但应用程序需要v4.5.2

除了安装正确的ASP . net运行时版本外,什么都不需要。

在构建服务器上的Jenkins的“控制台输出”页面中看到错误“无法识别的属性‘targetFramework’”。 这是在我改变了几个项目的“目标框架”之后。NET Framework 3.5' to '。NET Framework 4'并提交了我的更改。

在Jenkins中,项目设置必须改变。对于解决方案,“MSBuild版本”必须从“v3.5”更改为“v4.0”。

如果您正在使用IIS Express,它将为您运行的每个站点创建一个新配置,并将其绑定到url(主机/端口)。但是,当它使用相同的端口打开一个新项目时,它不会刷新配置。

这意味着如果您有一个使用CLR 2.0(。NET Framework 2.0到3.5)在某个端口上运行,然后在同一端口上使用CLR 4(。NET Framework 4.x+),新项目将尝试使用clr2运行,这是失败的-在这种情况下,它甚至不识别“targetFramework”属性。

一个解决方案是清理IIS Express站点,但最简单的方法是更改端口,以便IIS Express为您的项目创建一个新站点(使用CLR 4)。

我必须注册ASP。Net,以便在Windows Server 2008 R2中进行解决。下面附有命令的屏幕截图

cd /d C:\Windows\Microsoft.NET\Framework\v4.0.30319

iisreset /stop

aspnet_regiis -i

iisreset /start

%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll'].allowed:True 

%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll'].allowed:True 

对于那些在他们的开发PC上没有运行IIS的人来说,这是发生在我身上的事情:我有一个网站,覆盖了来自一个不同网站的文件,这个网站是4,而之前的是3.5。得到这个错误。修复它只是通过改变网站的目录名称,这在开发PC上可以是任何东西,所以没有问题。 以上的方法可能更优雅,但有时候简单的方法也可以,如果你能做到的话,比如你从事的是开发而不是QA或产品部。