我试图加载我的网站,我得到这个错误消息:
无法识别的属性'targetFramework'。注意,属性名是区分大小写的。
<compilation debug="true" targetFramework="4.0">
该网站在我的本地PC上运行良好,但当我将其加载到主机并试图在线查看时,它无法打开。
我试图加载我的网站,我得到这个错误消息:
无法识别的属性'targetFramework'。注意,属性名是区分大小写的。
<compilation debug="true" targetFramework="4.0">
该网站在我的本地PC上运行良好,但当我将其加载到主机并试图在线查看时,它无法打开。
当前回答
如果您正在使用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)。
其他回答
如果你编译文件,并且"targetFramework"的值被设置为一个特定的版本,即4.0,
确保主机运行的。net框架与声明的版本相同。
如果没有,请下载。net框架。
下载后,如果IIS管理器中没有自动设置为使用新下载的.net框架的扩展名,
手动添加扩展通过最近下载的。net框架通过IIS管理器:
1.右键单击网站文件夹
2.点击“属性”
3.在“虚拟目录”下,点击“配置”
4.编辑扩展名的可执行路径”。aspx”(其中路径指向的版本不是最近下载的。net框架的版本)到正确的路径,即新下载的。net框架的文件夹,然后选择“aspnet_isapi.dll”文件。
5.单击ok !
可能是你有自己的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>
将应用程序池更改为目标框架4.0而不是经典框架。
RC网站->管理网站->高级设置> 第一个选项从经典到框架4集成。
要解决这个问题,只需单击ASP。在“控制面板”的“站点工具”部分单击“NET版本”图标,将框架切换到4.0。
我正在使用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>