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

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

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

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


当前回答

我在MSBuild编译失败时出现了这个错误,在一个从早期VS版本转换到VS2010和。net 4.0的项目文件中。它实际上是一个Web部署项目,对我有效的解决方案是在MSBuild文件的开始处将以下条目添加到PropertyGroup部分:

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

在VS2010中转换其他类型的项目时,这些可能会自动更新,但在我的Web Deployment项目文件转换后,它们就消失了。

其他回答

这通常发生在你在web中有一个targetFramework="4.0"的属性时。但是应用程序池被设置为运行ASP. config。NET 2.0。targetFramework属性完全不能被ASP识别。NET 2.0 -因此将其更改为2.0将不会达到预期的效果。

联系技术支持/管理员,将appool切换到4.0。

你也可以完全删除这个属性,但是如果你的网站是用4.0框架编码的,那么我相信其他一些东西也会导致一个错误。

我正在使用IIS Express,而不是IIS。

问题出在应用程序主机上。配置文件位于:{solution_folder}\.vs\ Config \applicationhost.config。

其中一个应用程序池条目的managedRuntimeVersion值为“v2.0”。我把它改成了“v4.0”,它可以正常工作。

我很确定根本原因是我最近安装的NuGet包之一。

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>

我必须注册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 

对于分层, 在web中更改targetFramework的版本即可。仅配置文件,其他内容无需更改。

打开你的IIS(键入inetmgr in run)并更改你的应用程序池设置,要查看大映像右键单击映像并在新选项卡中打开映像