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

时间:2011-09-23 14:38:11

标签: asp.net

我试图加载我的网站,并收到此错误消息:

  

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

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

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

30 个答案:

答案 0 :(得分:583)

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

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

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

答案 1 :(得分:80)

向IIS注册框架对我有用:

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

答案 2 :(得分:42)

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

答案 3 :(得分:41)

在IIS中

单击“应用程序池”

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

答案 4 :(得分:25)

在Visual Studio菜单中:

  

网站 - &gt;开始选项 - &gt;构建标签 - &gt;选择目标框架   下拉框(.NET FrameWork 4)

答案 5 :(得分:12)

我在发布我的第一个网络服务时遇到了同样的问题。我只是这样解决了这个问题:

  
      
  1. 打开IIS

  2.   
  3. 点击“应用程序池”

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

  6.   

希望,它会起作用。

答案 6 :(得分:8)

对于IIS 7,请根据给定的图片进行尝试...如果它对您有用,请为我提供帮助。

enter image description here

答案 7 :(得分:8)

我必须在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 

enter image description here

答案 8 :(得分:5)

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

  1. RC网站 - &gt;管理网站 - &gt;高级设置&gt;
  2. 第一个选项从经典改为框架4集成。

答案 9 :(得分:4)

打开项目 - &gt;按 Shift + F4 (打开属性页) - &gt;选择构建 - &gt;在目标框架中选择 .NET Framework 4 - &gt;行

答案 10 :(得分:4)

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

问题出在applicationhost.config文件中,该文件位于:{solution_folder} \。vs \ config \ applicationhost.config。

其中一个应用程序池条目的managedRuntimeVersion值为&#34; v2.0&#34;。我把它更改为&#34; v4.0&#34;,它运行正常。

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

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

答案 11 :(得分:3)

选择.Net Framework v4.0.3xxxxx

创建一个新池

使用管理管道模式:集成

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

答案 12 :(得分:2)

我做了什么: 我确实将Application Pool的值从之前的值更改为DefaultAppPool。您可以在高级设置(网站 - &gt;管理网站 - &gt;高级设置&gt;。

)中执行此操作

答案 13 :(得分:2)

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

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

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

答案 14 :(得分:2)

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

答案 15 :(得分:1)

在本地运行应用程序时,我也遇到了同样的问题,它指向.Net Framework 4.7.1。 错误是“ 无法识别的属性TargetFrameWork ”,如下所示。 enter image description here

但以上答案均无济于事。最后,当我将我的当前端口(1413)编号更改为其他值(60179)时,如下所示,它对我来说很好用,但是我不确定实际的原因背后的原因,但它奏效了。

enter image description here

答案 16 :(得分:1)

在VS 2010中就是这样。

通过编辑.sln文件并更改 TargetFrameworkMoniker 以使“。NETFramework,Version%3Dv4.0”分配给它来修复。

答案 17 :(得分:0)

可能您拥有自己的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>

答案 18 :(得分:0)

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

这意味着如果您有一个使用CLR 2.0(.NET Framework 2.0到3.5)的项目在某个端口上运行,然后稍后使用CLR 4(.NET Framework 4.x +)在同一端口中打开另一个项目,则新项目将尝试使用CLR 2运行,该CLR 2将会失败-甚至无法识别“ targetFramework”属性。

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

答案 19 :(得分:0)

更改本地开发的端口号对我有所帮助,谢谢@Rinay Ashokan。 我已经排除了所有麻烦,最后发现项目配置存储在IIS Express中,表示端口号。 enter image description here

答案 20 :(得分:0)

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

  1. 只需将Project框架从4+ 切换到.Net framework 3.5 并运行它
  2. 如果成功运行,则可以将其恢复为所需的4个以上目标框架,并发现它可能会再次起作用。

答案 21 :(得分:0)

我遇到了同样的问题,并且发现了一个不错的poweshell脚本,可以同时更新所有应用程序池: https://gallery.technet.microsoft.com/scriptcenter/How-to-set-the-IIS-9c295a20

确保在顶部设置$IISAppPoolDotNetVersion = "v4.0"变量。

答案 22 :(得分:0)

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

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

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

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

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

1.右键单击网站文件夹

2.go to“Properties”

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

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

5.点击确定!

答案 23 :(得分:0)

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

答案 24 :(得分:0)

只需删除“Target Framework 4.0”并关闭括号。

它会起作用

答案 25 :(得分:0)

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

除了安装正确版本的ASP之外,没有其他任何东西需要运行时间。

答案 26 :(得分:0)

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

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

答案 27 :(得分:0)

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

答案 28 :(得分:0)

请按照以下两个步骤操作:

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

  1. C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319&gt; aspnet_regiis -i

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

答案 29 :(得分:-1)

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