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

时间:2012-08-09 19:26:29

标签: c# asp.net .net iis razor

我刚刚将一个网站上传到我的服务器。它在本地完美运行,但在我上传后,在线版本显示:

Configuration Error    Description: An error occurred during the
processing of a configuration file required to service this request.
Please review the specific error details below and modify your
configuration file appropriately. 

 Parser Error Message: Unrecognized attribute 'targetFramework'. Note
that attribute names are case-sensitive.

Source Error: 



Line 37:     </buildProviders>
Line 38:     </compilation>
Line 39:     <httpRuntime targetFramework="4.0"
encoderType="System.Web.Security.AntiXss.AntiXssEncoder, System.Web,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Line 40:     <machineKey compatibilityMode="Framework45" />
Line 41:  </system.web>


 Source File:  D:\HostingSpaces\o\o.com.au\wwwroot\web.config    Line:
39 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319;
ASP.NET Version:4.0.30319.272

根据本网站上的其他答案,因为服务器上的帐户设置为使用.NET Framework 2.0。但是我的情况并非如此,我已经确定它设置为4.0,我甚至尝试过4.0集成。但它仍然显示此错误。

可能导致这种情况的原因是什么?我该如何解决?

enter image description here

4 个答案:

答案 0 :(得分:18)

应用程序正在尝试使用ASP.NET 4.5中的新功能(特别参见<httpRuntime><machineKey>元素),但服务器只有ASP.NET 4.0。从Web.config中删除<httpRuntime><machineKey>元素以解决问题。

(有趣的是:<httpRuntime/targetFramework>属性直到4.5才存在。所以即使值为“4.0”,服务器仍然会失败,因为它根本不会看到这个属性。)

答案 1 :(得分:7)

可以通过转到IIS,单击“应用程序池”并将“版本”设置为4.0(集成)(运行站点的版本)来解决此问题。接受的答案是HttpRunTime / targetFrameWork&gt;直到4.5才存在。这是不正确的。作为参考,这是HttpRuntime V2 DocTargetFrameWork是第4版的新功能。

OP问题中的问题是,他将站点的.NET版本设置为4,但在远程服务器上,2.0正在运行,因此出现错误。在这种情况下,由于他无法控制远程服务器(假设),在本地将.NET版本更改为2.0可以解决问题,而无需摆弄web.config。

答案 2 :(得分:2)

我认为您的IIS中的应用程序池设置不正确,您必须将您的应用程序池设置为ASP.NET v4.0。

希望这个帮助

答案 3 :(得分:0)

在我的情况下,解决方案与我的服务器上没有ASP.NET 4无关。我的服务器位于负载均衡器上,网站的文件位于分布式文件系统上。我需要使用有效的用户和密码连接到DFS。完成后我不再看到错误。但是,如果您遇到此问题,请先检查其他解决方案。我会说如果你看到这个错误,那么在十分之九的情况下,.NET Framework不在服务器上,或者没有为应用程序池指定。