无法识别的属性“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服务时遇到了同样的问题。 我解决了这个问题:
打开IIS
点击应用程序池
右键单击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而不是经典。
- RC网站 – >pipe理网站 – >高级设置>
- 第一个选项从经典到框架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(如果它没有注册)
-
C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis -i
-
在应用程序池中将.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上可以是任何东西,所以没有问题。 上面可能是更优雅的,但有时候是简单的作品,如果你能摆脱它,也就是说,你在开发而不是质量保证或产品。