我试图加载我的网站,并收到此错误消息:
无法识别的属性' targetFramework'。请注意,属性名称区分大小写。
<compilation debug="true" targetFramework="4.0">
该网站在我的本地PC上运行良好,但在我将其加载到主机并尝试在线查看时却无法打开。
答案 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)并更改您的应用程序池设置,要查看大图像右键单击图像并在新选项卡中打开图像
答案 3 :(得分:41)
在IIS中
单击“应用程序池”
右键单击DefaultAppPool ---&gt;&gt;设置应用程序池默认....---&gt;&gt;将.Net版本更改为V 4.0。
答案 4 :(得分:25)
在Visual Studio菜单中:
网站 - &gt;开始选项 - &gt;构建标签 - &gt;选择目标框架 下拉框(.NET FrameWork 4)
答案 5 :(得分:12)
我在发布我的第一个网络服务时遇到了同样的问题。我只是这样解决了这个问题:
打开IIS
点击“应用程序池”
- 醇>
右键单击DefaultAppPool =&gt;设置应用程序池默认=&gt;将.Net版本更改为V 4.0。 (你也可以改变 .Net Framework特定应用程序版本)
希望,它会起作用。
答案 6 :(得分:8)
答案 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
答案 8 :(得分:5)
将应用程序池更改为目标框架4.0而不是经典。
答案 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 ”,如下所示。
但以上答案均无济于事。最后,当我将我的当前端口(1413)编号更改为其他值(60179)时,如下所示,它对我来说很好用,但是我不确定实际的原因背后的原因,但它奏效了。
答案 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)
答案 20 :(得分:0)
以下2个步骤将强制刷新Visual Studio和IIS Express缓存,通常可以解决我的类似问题:
答案 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(如果未注册)
C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319&gt; aspnet_regiis -i
在应用程序池中,将.net框架更改为v4.0
答案 29 :(得分:-1)
对于那些没有在他们的开发PC上运行IIS的人来说,这里发生了什么:我有一个网站,用一个差异网站的文件覆盖了4个而前一个是3.5。得到了这个错误。修改它只是通过更改网站的目录名称,在开发PC上可以是任何东西,所以没有问题。 以上可能更加优雅,但有时简单的工作,如果你可以逃脱它,即你在开发而不是QA或Prod。