ASP.NET MVC 5 web.config <system.web>编译&amp; httpRuntime错误</system.web>

时间:2014-05-13 14:35:01

标签: c# asp.net-mvc web-config

当我将mvc应用程序部署到我的IIS 7服务器时,它在web.config文件中有以下内容:

  <system.web>
    <compilation targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
  </system.web>

编辑和编辑httpRuntime标签给出了以下错误:

解析器错误消息:&#39; targetFramework&#39; Web.config文件元素中的属性仅用于目标4.0版及更高版本的.NET Framework(例如,&#39;&#39;)。 &#39; targetFramework&#39;属性当前引用的版本晚于安装的.NET Framework版本。指定.NET Framework的有效目标版本,或安装所需的.NET Framework版本。

所以只是为了咯咯笑,我删除了编辑和放大httpRuntime标签,然后网站工作完美!服务器上有4.5.1。我猜测这是应用程序池的一部分,但看起来应用程序池中的唯一选项是:No Managed Code,.NET Framework v2.0,.Net Framework v4.0。 v4.5或v4.5.1没有选项。现在它已设置为v4.0。

我没有真正理解编译和httpRuntime的用途以及为什么它们甚至在我的web.config中,因为我没有明确地将它们放在那里。

3 个答案:

答案 0 :(得分:6)

Microsoft更新.NET Framework有两种方法:

  • 并排发布,就像v1.1,2.0,4
  • 一样
  • 增强,就像3,3.5,4.5
  • 一样

这意味着当您安装.NET 4.5时,v4.0文件夹刚刚更新为包含.NET 4.5文件。

IIS仅显示并排版本,而不是增强功能。由于4.5是增强功能,因此它适用于v4.0的framework文件夹。这也解释了为什么你只在.NET应用程序池中看到.NET Framework v2.0和.Net Framework v4.0作为选项。

至于targetFramework属性,它仅在框架4.0中被识别,而不是之前的。

targetFramework属性有两个效果:

  • 它控制公共语言运行时的怪癖模式行为
  • 它作为一种快捷方式,允许ASP.NET运行时推断出各种配置设置

删除属性确实解决了您的问题,但这不是最健康的事情。我认为你应该检查服务器的注册表,看看服务器上安装了哪些框架更新,检查网站是否也配置为适用于框架4.

答案 1 :(得分:3)

您只需要在IIS 7.5服务器中将.NET框架升级到版本4.5,使用服务器上的 Microsoft Web安装程序软件执行搜索.NET,然后安装。 NET框架版本4.5以及针对该版本的所有应用程序都可以使用

答案 2 :(得分:0)

我的问题是,在设置网站时,我网站的&gt; NET版本默认为2.0。 将其更改为4.0并且网站正常工作