39

我在 Visual Studio 2015 中创建了一个 MVC 网站,它可以在我的本地主机中运行。但是当我发布我的网站并放入我的主机时,它不起作用。它给了我这个错误通知:

“/”应用程序中的服务器错误。

配置错误

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

源错误:

服务器上发生应用程序错误。此应用程序的当前自定义错误设置阻止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以被本地服务器机器上运行的浏览器查看。

源文件:G:\xxx\xxx.com\httpdocs\web.config 行:24

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.34248

我的 web.config 中的相关部分:

  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>

这部分有错误:

  <system.web>
    <authentication mode="None" />
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.6" />
    <httpRuntime targetFramework="4.6" />
  </system.web>

我的网站的属性:

在此处输入图像描述

和 NuGet 包管理器:

在此处输入图像描述

EntityFramework 参考属性:

在此处输入图像描述

默认网站基本设置:(老实说,我不确定是否应该在这里添加一个新网站(我的网站)。)

在此处输入图像描述

我安装的 .net 框架:

在此处输入图像描述

我的发布方法:

在此处输入图像描述

我在网上调查了这个问题,发现了几个与我的问题相关的链接:Asp.net MCV4 framework issue。在此链接中,有两个主要优惠:

  1. 改变这个编译标签

  2. 更新 IIS 中的应用程序池

实际上,我曾尝试更改此标签,但它并没有改变。然后我控制了我的应用程序池,但它似乎是最新的。

在此处输入图像描述

我已经打电话给我的主机提供商,我已经解释了我的问题。他们说这个错误与他们的服务器无关。

我应该怎么办?解决方案是什么?

4

7 回答 7

56

您的网站项目面向 .Net Framework v4.6,但您的托管服务提供商尚未安装此版本。您的选择:

  1. 要求供应商安装它 - 他们不太可能这样做。
  2. 寻找另一个支持它的提供商。
  3. 将您的项目更改为目标 v4.5。
于 2015-10-29T11:21:20.533 回答
11

@DavidG 正确地指出了所有事情。只是在信息方面,如果 IIS 是您的提供商,那么 Web 平台安装程序是您检查当前机器上安装的所有内容的当前状态的最佳选择。看看下面的快照 -

在此处输入图像描述

检查所有缺失的部分非常方便,您可以一键启动所有缺失部分的安装。

于 2016-11-15T10:23:10.530 回答
2

在 KB 3205402 的安装(Windows 更新)之后,我遇到了类似的问题。

与我的情况有很大不同:该应用程序在更新之前运行良好!

==> 我在“IIS 管理器”中的“ISAPI 和 CGI​​ 限制”中发现框架 ASP.NET v4.0.30319 已切换为“未经授权”!

将其切换为“授权”解决了我的问题

于 2017-01-11T10:25:08.707 回答
1

在离线服务器上的以下行有同样的问题,

 <compilation targetFramework="4.5.2">

尝试从服务器管理器及其池中添加与 .Net 框架相关的所有角色和功能,

但没有用,对我有用的只是下载 Microsoft .NET Framework 4.5.2(离线安装程序)

于 2019-09-17T08:52:19.513 回答
0

我变了:

<system.web>
    <compilation debug="true" targetFramework="4.7" />
    <httpRuntime targetFramework="4.7" />
    <customErrors mode="Off"/>
  </system.web>

<system.web>
     <compilation debug="true" targetFramework="4.5" />
     <httpRuntime targetFramework="4.5" />
     <customErrors mode="Off"/>
</system.web>

即,将targetFramework值从 4.7 更改为 4.5(服务器上支持的那个)。并工作。

于 2019-08-02T07:46:16.700 回答
0

我尝试直接在配置文件中替换targetFramework 4.5.2to 。targetFramework 4.0然后它和所有功能都可以正常工作。

前:

<compilation targetFramework="4.5.2">

后:

<compilation targetFramework="4.0">
于 2020-07-14T09:26:04.203 回答
-1

我今天绕着这个转,没有解决。激怒了,我终于从我的驱动器中删除了我的工作副本,并从 SVN 重新检查了它。

固定的。

不是一个特别聪明的答案,但它为我解决了这个问题,不知道实际问题是什么。

于 2018-07-18T21:04:45.600 回答