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

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

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

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

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

452680 次浏览

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

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

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

在IIS中注册框架对我来说是有效的:

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

在Visual Studio菜单中:

Website -> Start Options -> build tab ->选择Target Framework in 下拉框(。NET FrameWork 4)

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

使用管理管道模式:集成

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

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

确保主机运行的。net框架与声明的版本相同。

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

下载后,如果IIS管理器中没有自动设置为使用新下载的.net框架的扩展名,

手动添加扩展通过最近下载的。net框架通过IIS管理器:

1.右键单击网站文件夹

2.点击“属性”

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

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

5.单击ok !

在VS 2010才有。

通过编辑.sln文件并更改TargetFrameworkMoniker以将值“% 3 dv4.0 .NETFramework,版本”分配给它来修复。

要解决这个问题,只需单击ASP。在“控制面板”的“站点工具”部分单击“NET版本”图标,将框架切换到4.0。

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

  1. RC网站->管理网站->高级设置>
  2. 第一个选项从经典到框架4集成。

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

<ProductVersion>10.0.11107</ProductVersion>


<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

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

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

enter image description here

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

.

.

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

会有用的

遵循以下两个步骤:

注册。net框架版本4.0(如果没有注册)

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

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

如果您在安装。net FrameWork之后安装IIS。您需要为IIS重新安装。net框架。所以我们所需要做的就是运行aspnet_regiis -i。希望对大家有所帮助。

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

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

在IIS

单击应用程序池

右键单击“DefaultAppPool——>>”设置应用程序池默认值....将. net版本更改为V 4.0。

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

. NET Framework 4'并提交我的更改

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

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

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

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

可能是你有自己的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>
< p >分层, 在web中更改targetFramework的版本即可。只有配置文件,其他的不需要改变

我正在使用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>

在发布我的第一个web服务时,我也面临着同样的问题。我的解决方法很简单:

  1. 打开IIS

  2. 单击应用程序池

  3. 右键单击“DefaultAppPool =>”设置应用程序池默认值=>修改。net版本为V 4.0。(你也可以改变 .Net框架应用程序的具体版本)

  4. .Net框架

希望它能起作用。

iis7尝试根据给定的图片…如果对你有用,就说我是有用的。

enter image description here

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

但上面的答案都帮不了我。最后,当我将我的现在的港口(1413)数字更改为其他值(60179)时,如下所示,它对我来说工作得很好。但我不确定这背后的实际原因,但它确实起作用了。

enter image description here

我有同样的问题,我发现这个漂亮的powershell脚本更新所有的应用程序池在同一时间: https://gallery.technet.microsoft.com/scriptcenter/How-to-set-the-IIS-9c295a20 < / p >

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

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

  1. 简单地从4+ 到.Net framework 3.5切换项目框架并运行它
  2. 如果它运行成功,你可以把它恢复到你想要的4+目标框架,并看到它可能会再次工作。
为本地开发更改端口号帮助了我。谢谢@Rinay Ashokan。 我已经做了所有的故障排除,最后发现项目配置存储在IIS express的端口号中。 enter image description here < / p >

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

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

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