我正在尝试加载我的网站,并收到以下错误消息:
无法识别的属性“ targetFramework”。请注意,属性名称区分大小写。
<compilation debug="true" targetFramework="4.0">
该站点在我的本地PC上运行良好,但是在将其加载到主机并尝试在线查看时无法打开。
我正在尝试加载我的网站,并收到以下错误消息:
无法识别的属性“ targetFramework”。请注意,属性名称区分大小写。
<compilation debug="true" targetFramework="4.0">
该站点在我的本地PC上运行良好,但是在将其加载到主机并尝试在线查看时无法打开。
Answers:
当您targetFramework="4.0"
在web.config中具有属性,但应用程序池设置为运行ASP.NET 2.0 时,通常会发生这种情况。该targetFramework
属性是ASP.NET 2.0完全无法识别的-因此将其更改为2.0不会产生预期的效果。
请与支持/管理员联系,并将AppPool切换到4.0。
您也可以完全删除该属性,但是,如果您的网站是使用4.0框架编码的,那么我敢肯定,其他因素也会导致错误。
在IIS中注册框架对我有用:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
在IIS中
单击应用程序池
右键单击DefaultAppPool --- >>将应用程序池设置为默认....--- >>将.Net版本更改为V 4.0。
在Visual Studio菜单中:
网站->开始选项->生成选项卡->在下拉框中选择目标框架(.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
我使用的是IIS Express,而不是IIS。
问题出在位于以下位置的applicationhost.config文件中:{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>
通过选择.Net Framework v4.0.3xxxxx创建一个新池
使用管理管道模式:集成
将其分配到您的站点并完成。
在本地运行指向.Net Framework 4.7.1的应用程序时,我也遇到了相同的问题。该错误是“ 无法识别的属性TargetFrameWork ”,如下所示。
但是上述答案都没有帮助我。最后,当我将当前端口(1413)的值更改为其他值(60179)时,如下所示,它对我来说很好用,但是我不确定其背后的实际原因,但它确实起作用了。
如果您编译文件,并且将“ targetFramework”的值设置为特定版本,即4.0,
确保主机正在运行与所述相同版本的.net框架。
如果没有,请下载.net框架。
下载后,如果不是在IIS管理器中自动将其设置为使用新下载的.net Framework版本的扩展名,
通过通过IIS管理器进入最近下载的.net框架的文件夹,手动添加扩展名:
1.右键单击网站文件夹
2.转到“属性”
3.在“虚拟目录”下,单击“配置”
4.将扩展名“ .aspx”的可执行路径(其中的路径指向最近下载的.net框架版本以外的版本)编辑为正确的路径,该路径是.net框架的最新下载版本的文件夹然后选择“ aspnet_isapi.dll”文件。
5.单击确定!
可能是您拥有自己的MSBUILD proj文件并且正在使用该<AspNetCompiler>
任务。在这种情况下,您应该添加ToolPath
.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>