提问



我正在尝试加载我的网站,我收到此错误消息:



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



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


该网站在我的本地PC上工作正常,但当我将其加载到我的主机并尝试在线查看时,它不会打开。

最佳参考


当您在web.config中具有targetFramework="4.0"属性但应用程序池设置为运行ASP.NET 2.0时,通常会发生这种情况。 ASP.NET [[2.0]]完全无法识别targetFramework属性 - 因此将其更改为2.0将不会产生预期的效果。


联系支持人员/您的管理员,并将AppPool切换为4.0。


您也可以完全删除该属性,但是如果您的站点使用4.0 Framework进行编码,那么我确定其他内容也会导致错误。

其它参考1


使用IIS注册框架对我有用:


C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i

其它参考2


打开您的IIS(在运行中键入inetmgr)并更改您的应用程序池设置,要查看大图像右键单击图像并在新选项卡中打开图像在此处输入图像说明

其它参考3


在IIS中


单击应用程序池


右键单击DefaultAppPool --- >>设置应用程序池默认....--- >>将.Net版本更改为V 4.0。

其它参考4


在Visual Studio菜单中:



  网站 - >开始选项 - >构建选项卡 - >选择目标框架
  下拉框(.NET FrameWork 4)


其它参考5


对于IIS 7尝试根据给定的图片...如果它适合你,请给我帮助。


[12]

其它参考6


我必须在IIS中注册ASP.Net才能在Windows Server 2008 R2中解决它。下面是命令的Sreenshot


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 




其它参考7


我在发布我的1st web服务时遇到了同样的问题。我通过简单地解决了这个问题:



  

      
  1. 打开IIS

  2.   
  3. 单击应用程序池

  4.   
  5. 右键单击DefaultAppPool ==>设置应用程序池默认== >>将.Net版本更改为V 4.0。 (你也可以改变
      特别是你的应用程序的.Net Framework版本)

  6.   



希望,它会工作。

其它参考8


将应用程序池更改为目标框架4.0而不是经典。



  1. RC网站 - >管理网站 - >高级设置>

  2. 第一个选项从经典更改为框架4集成。


其它参考9


打开项目 - >在目标框架中按 Shift + F4 (打开属性页) - >选择构建 - >选择 .NET Framework 4 - >确定

其它参考10


选择.Net Framework v4.0.3xxxxx创建一个新池


使用管理管道模式:集成


将其分配到您的网站并完成。

其它参考11


要解决此问题,只需单击控制面板的站点工具部分中的ASP.NET版本图标,即可将框架切换为4.0。

其它参考12


我从一个从早期版本的VS转换为VS2010和.NET 4.0的项目文件中,从失败的 MSBuild 编译中得到了此错误。它实际上是一个Web部署项目,对我有用的解决方案是将以下条目添加到 MSBuild 文件开头的 PropertyGroup 部分:


<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>


在VS2010中转换其他类型的项目时,这些项目可能会自动更新,但转换后我的Web部署项目文件中缺少这些项目。

其它参考13


我做了什么:
我确实将Application Pool的值从之前的值更改为DefaultAppPool。您可以在高级设置(网站 - >管理网站 - >高级设置>)中执行此操作。

其它参考14


我使用的是IIS Express,而不是IIS。


问题出在applicationhost.config文件中:{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>

其它参考15


刚刚在VS 2010中有这个。


通过编辑.sln文件并更改 TargetFrameworkMoniker 以修复分配给它的值。NETFramework,Version%3Dv4.0来解决此问题。

其它参考16


如果您编译文件并且targetFramework的值被设置为特定版本,即4.0,


确保主机运行.net框架与所述版本相同。


如果没有,请下载.net框架。


下载后,如果未在IIS管理器中自动设置使用新下载的.net框架版本的扩展名,


通过转到最近下载的.net框架的文件夹来手动添加扩展程序通过IIS管理器:


1.右键单击网站文件夹


2.到属性


3.在虚拟目录下,单击配置


4.编辑扩展名.aspx的可执行路径(其路径指向最近下载的.net框架版本以外的版本)到正确的路径,即新下载的.net框架版本的文件夹然后选择aspnet_isapi.dll文件。


点击确定!

其它参考17


只需删除Target Framework 4.0并关闭括号即可。


它会工作

其它参考18


请遵循以下两个步骤:


注册.net框架版本4.0(如果未注册)



  1. C:\\ WINDOWS \\ Microsoft.NET \\ Framework \\ v4.0.30319> aspnet_regiis -i

  2. 在应用程序池中将.net框架更改为v4.0


其它参考19


如果在安装.Net FrameWork之后安装IIS。您需要再次为IIS安装.net框架。所以我们需要做的就是运行aspnet_regiis -i。希望它有所帮助。

其它参考20


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


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

其它参考21


刚刚将此应用程序部署到旧的IIS框中时遇到此问题。调查导致安装了v4.5.1运行时,但应用程序需要v4.5.2


除了安装正确版本的ASP .Net运行时,还需要其他任何东西。

其它参考22


可能是您拥有自己的MSBUILD proj文件并正在使用<AspNetCompiler>任务。在这种情况下,您应该为.NET4添加ToolPath


<AspNetCompiler
    VirtualPath="/MyFacade"
    PhysicalPath="$(MSBuildProjectDirectory)\MyFacade\"
    TargetPath="$(MSBuildProjectDirectory)\Release\MyFacade"
    Updateable="true"
    Force="true"
    Debug="false"
    Clean="true"
    ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\">      
</AspNetCompiler>

其它参考23


对于分层,
只需更改web.config文件中的targetFramework版本,其他内容无需更改。

其它参考24


我在本地运行我的应用程序时也遇到了同样的问题,该应用程序指向.Net Framework 4.7.1。
该错误是无法识别的属性TargetFrameWork ,如下所示。
[13]


但上述答案都没有帮助我。最后,当我将当前端口(1413)号码更改为其他值(60179)时,如下所示,它对我来说很好。但我不确定实际这背后的原因,但它的工作原理。


[14]

其它参考25


对于那些没有在他们的开发PC上运行IIS的人来说,这里发生了什么:我有一个网站,用一个差异网站的文件覆盖了4个而前一个是3.5。得到了这个错误。修改它只是通过更改网站的目录名称,在开发PC上可以是任何东西,所以没有问题。
以上可能更加优雅,但有时​​简单的工作,如果你可以逃脱它,即你在开发而不是QA或Prod。