【问题标题】:ASP.NET MVC 5 web.config <system.web> compilation & httpRuntime errorASP.NET MVC 5 web.config <system.web> 编译 & httpRuntime 错误
【发布时间】:2014-07-01 07:17:07
【问题描述】:

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

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

包含编译和 httpRuntime 标签会给我以下错误:

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

所以只是为了咯咯笑,我删除了编译和 httpRuntime 标签,然后网站就可以完美运行了!服务器上有 4.5.1。我猜这与应用程序池有关,但看起来应用程序池中的唯一选项是:无托管代码、.NET Framework v2.0、.Net Framework v4.0。 v4.5 或 v4.5.1 没有选项。现在它设置为 v4.0。

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

【问题讨论】:

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


    【解决方案1】:

    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 Framework v2.0 和 .Net Framework v4.0 作为 IIS 应用程序池下的选项。

    至于targetFramework 属性,它只在framework 4.0 中被识别,而不是在之前的版本中。

    targetFramework 属性有两个作用:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我的问题是我网站的 >NET 版本在设置网站时默认为 2.0。 将其更改为 4.0 和站点工作

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-22
          • 1970-01-01
          • 2010-10-04
          • 1970-01-01
          • 2017-03-16
          • 2014-03-06
          • 1970-01-01
          • 2015-10-02
          相关资源
          最近更新 更多