web.config 中与 targetFramework 相关的配置错误
Configuration Error related to targetFramework in web.config
我在 Visual Studio 2015 年制作了一个 MVC 网站,它在我的本地主机上运行。但是当我发布我的网站并放入我的主机时,它不起作用。它给了我这个错误通知:
Server Error in '/' Application.
Configuration Error
Parser Error Message: The 'targetFramework' attribute in the
element of the Web.config file is used only to target
version 4.0 and later of the .NET Framework (for example,
''). The 'targetFramework'
attribute currently references a version that is later than the
installed version of the .NET Framework. Specify a valid target
version of the .NET Framework, or install the required version of the
.NET Framework.
Source Error:
An application error occurred on the server. The current custom error
settings for this application prevent the details of the application
error from being viewed remotely (for security reasons). It could,
however, be viewed by browsers running on the local server machine.
Source File: G:\xxx\xxx.com\httpdocs\web.config Line: 24
Version Information: Microsoft .NET Framework Version:4.0.30319;
ASP.NET Version: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 框架:
我的发布方式:
我在 Internet 上调查了这个问题,发现了几个与我的问题相关的 link:Asp.net MCV4 framework issue。在这个link中,有两个主要优惠:
更改此编译标记
正在更新 IIS 中的应用程序池
实际上,我已经尝试更改此标签,但它并没有改变。然后我控制了我的应用程序池,但它似乎是最新的。
我已经打电话给我的主机提供商并解释了我的问题。他们说这个错误与他们的服务器无关。
我该怎么办?解决方案是什么?
您的网站项目以 .NET Framework v4.6 为目标,但您的托管服务提供商尚未安装此版本。您的选择:
- 请提供商安装它 - 他们不太可能这样做。
- 寻找另一个支持它的供应商。
- 将您的项目更改为目标 v4.5。
@DavidG 指出了所有正确的事情。我正在添加更多信息来补充他的回答。如果 Internet Information Server (IIS) 是您的提供商,那么 Web 平台安装程序是您检查当前计算机上安装的所有组件的当前状态的最佳选择(参考屏幕截图)
检查计算机中缺少的所有组件非常容易。在此基础上,您可以一键启动安装任何缺少的组件。
我在安装 KB 3205402(windows 更新)后遇到了类似的问题。
与我的情况有很大不同:应用程序在更新之前运行良好!
==> 我在 "IIS Manager" 中发现 "ISAPI and CGI Restrictions" 框架 ASP.NET v4.0.30319 已切换到 "unauthorized" !
将它切换到 "Authorized" 解决了我的问题
我今天绕了又绕,没有解决。激怒了,我终于从我的驱动器中删除了我的工作副本,并从 SVN 中重新检出它。
已修复。
不是一个特别聪明的答案,但它为我解决了问题,不知道实际问题是什么。
我改了:
<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(服务器支持的值)。并工作。
在离线服务器的下面一行有同样的问题,
<compilation targetFramework="4.5.2">
尝试从服务器管理器和它的池中添加与 .Net 框架相关的所有角色和功能,
但没用,对我有用的是下载 Microsoft .NET Framework 4.5.2(离线安装程序)
我尝试直接在配置文件中将 targetFramework 4.5.2
替换为 targetFramework 4.0
。然后它和所有功能都可以正常工作。
之前:
<compilation targetFramework="4.5.2">
之后:
<compilation targetFramework="4.0">
我在 Visual Studio 2015 年制作了一个 MVC 网站,它在我的本地主机上运行。但是当我发布我的网站并放入我的主机时,它不起作用。它给了我这个错误通知:
Server Error in '/' Application.
Configuration Error
Parser Error Message: The 'targetFramework' attribute in the element of the Web.config file is used only to target version 4.0 and later of the .NET Framework (for example, ''). The 'targetFramework' attribute currently references a version that is later than the installed version of the .NET Framework. Specify a valid target version of the .NET Framework, or install the required version of the .NET Framework.
Source Error:
An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
Source File: G:\xxx\xxx.com\httpdocs\web.config Line: 24
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version: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 框架:
我的发布方式:
我在 Internet 上调查了这个问题,发现了几个与我的问题相关的 link:Asp.net MCV4 framework issue。在这个link中,有两个主要优惠:
更改此编译标记
正在更新 IIS 中的应用程序池
实际上,我已经尝试更改此标签,但它并没有改变。然后我控制了我的应用程序池,但它似乎是最新的。
我已经打电话给我的主机提供商并解释了我的问题。他们说这个错误与他们的服务器无关。
我该怎么办?解决方案是什么?
您的网站项目以 .NET Framework v4.6 为目标,但您的托管服务提供商尚未安装此版本。您的选择:
- 请提供商安装它 - 他们不太可能这样做。
- 寻找另一个支持它的供应商。
- 将您的项目更改为目标 v4.5。
@DavidG 指出了所有正确的事情。我正在添加更多信息来补充他的回答。如果 Internet Information Server (IIS) 是您的提供商,那么 Web 平台安装程序是您检查当前计算机上安装的所有组件的当前状态的最佳选择(参考屏幕截图)
检查计算机中缺少的所有组件非常容易。在此基础上,您可以一键启动安装任何缺少的组件。
我在安装 KB 3205402(windows 更新)后遇到了类似的问题。
与我的情况有很大不同:应用程序在更新之前运行良好!
==> 我在 "IIS Manager" 中发现 "ISAPI and CGI Restrictions" 框架 ASP.NET v4.0.30319 已切换到 "unauthorized" !
将它切换到 "Authorized" 解决了我的问题
我今天绕了又绕,没有解决。激怒了,我终于从我的驱动器中删除了我的工作副本,并从 SVN 中重新检出它。
已修复。
不是一个特别聪明的答案,但它为我解决了问题,不知道实际问题是什么。
我改了:
<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(服务器支持的值)。并工作。
在离线服务器的下面一行有同样的问题,
<compilation targetFramework="4.5.2">
尝试从服务器管理器和它的池中添加与 .Net 框架相关的所有角色和功能,
但没用,对我有用的是下载 Microsoft .NET Framework 4.5.2(离线安装程序)
我尝试直接在配置文件中将 targetFramework 4.5.2
替换为 targetFramework 4.0
。然后它和所有功能都可以正常工作。
之前:
<compilation targetFramework="4.5.2">
之后:
<compilation targetFramework="4.0">