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

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

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

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


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

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

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


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

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

在Visual Studio菜单中:

网站->开始选项->构建选项卡->选择目标框架 下拉框(。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值“. net framework,Version%3Dv4.0”分配给它。


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


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

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


我在MSBuild编译失败时出现了这个错误,在一个从早期VS版本转换到VS2010和。net 4.0的项目文件中。它实际上是一个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 


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


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

会有用的


遵循以下两个步骤:

注册。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。希望对大家有所帮助。


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


打开项目->按Shift + F4(打开属性页)->选择Build ->在目标框架中选择。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或产品部。


可能是你有自己的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>

对于分层, 在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服务时,我也面临着同样的问题。我的解决方法很简单:

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

希望它能起作用。


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


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

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


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

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


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

简单地将Project框架从4+切换到.Net framework 3.5并运行它 如果它成功运行,你可以将它恢复到你想要的4+目标框架,并看到它可能会再次工作。


为本地开发更改端口号帮助了我。谢谢@Rinay Ashokan。 我已经做了所有的故障排除,最后发现项目配置存储在IIS express的端口号中。


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

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

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