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

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

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

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

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

这通常发生在web.config中具有targetFramework="4.0"的属性时,但App Pool设置为运行ASP.NET 2.0。 targetFramework属性是ASP.NET 2.0完全无法识别的 – 所以将其更改为2.0将不会产生预期的效果。

联系支持/您的pipe理员,并将AppPool切换到4.0。

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

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

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

打开你的IIS(在运行中键入inetmgr),并更改你的应用程序池设置,查看大图像右键单击图像,并在新标签中打开图像 在这里输入图像说明

在IIS中

点击应用程序池

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

在菜单中:

网站 – >开始选项 – >生成选项卡 ​​- >在下拉框中select目标框架(.NET FrameWork 4)

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

  1. 打开IIS

  2. 点击应用程序池

  3. 右键单击DefaultAppPool ==>设置应用程序池默认== >>将.Net版本更改为V 4.0。 (您也可以专门更改您的应用程序的.Net Framework版本)

希望,它会工作。

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

在这里输入图像说明

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

  1. RC网站 – >pipe理网站 – >高级设置>
  2. 第一个选项从经典到框架4整合。

打开项目 – >按Shift + F4 (打开属性页) – >在目标框架中select构build – >select.NET Framework 4 – >确定

通过select.Net Framework v4.0.3xxxxx创build一个新池

使用pipe理pipe道模式:集成

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

我从一个失败的MSBuild编译,在一个项目文件从VS的早期版本转换到VS2010和.NET 4.0中有这个错误。 这实际上是一个Web部署项目,并且为我工作的解决scheme是将以下项添加到MSBuild文件的开始PropertyGroup部分中:

 <ProductVersion>10.0.11107</ProductVersion> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> 

当其他types的项目在VS2010中转换时,这些可能会自动更新,但是在转换后,它们从我的Web部署项目文件中丢失。

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

刚刚在VS 2010中有这个。

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

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

为IIS 7尝试根据给定的图片…标记我有帮助,如果它适合你。

在这里输入图像说明

如果你编译的文件和“targetFramework”的值被设置为一个特定的版本,即4.0,

确保主机正在运行.net框架作为相同的版本陈述。

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

下载之后,如果在IISpipe理器中没有自动设置为使用新下载的.net框架版本的扩展名,

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

1.右键单击网站文件夹

2.go到“属性”

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

4.将扩展名“.aspx”的可执行path(其中path指向最近下载的.net框架版本以外的其他版本)的可执行path修改为新下载的.net框架版本文件夹的正确path然后select“aspnet_isapi.dll”文件。

5.点击确定!

只要删除“目标框架4.0”并closures支架。

它会工作

遵循以下两个步骤:

注册.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 。 希望这是有帮助的。

在构build服务器上的Jenkins的“控制台输出”页面中查看错误“Unrecognized attribute'targetFramework'”。 这是在我将“.NET Framework 3.5”的几个项目的“目标框架”更改为“.NET Framework 4”并提交了更改之后。

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

只是有这个问题部署一个新的应用程序到一个旧的IIS框。 调查导致v4.5.1运行时正在安装,但应用程序需要v4.5.2

除了安装正确版本的ASP.Net运行时间以外,没有其他的要求。

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

 <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> 

对于分层,只需要在web.config文件中更改targetFramework的版本,其他事情不需要改变。

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

问题出在位于:{solution_folder} \。vs \ config \ applicationhost.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> 

对于那些没有在他们的个人电脑上运行IIS的人来说,这里是发生在我身上的事情:我有一个网站,上面覆盖了来自不同网站的文件,而前一个是3.5。 得到这个错误。 修正它只是通过改变网站的目录名称,这在开发PC上可以是任何东西,所以没有问题。 上面可能是更优雅的,但有时候是简单的作品,如果你能摆脱它,也就是说,你在开发而不是质量保证或产品。