未找到方法:’! ! 0[]系统. 数组. 空()’

我用 VS 2015 RC 和 MVC 模板创建了一个新的应用程序,在没有修改任何代码的情况下,我得到了这个错误:

Method not found: '!!0[] System.Array.Empty()'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System.MissingMethodException: Method not found: '!!0[] System.Array.Empty()'.


Source Error:


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:




[MissingMethodException: Method not found: '!!0[] System.Array.Empty()'.]
SAASApp.BundleConfig.RegisterBundles(BundleCollection bundles) in C:\Proyectos\SAASApp\SAASApp\App_Start\BundleConfig.cs:29
SAASApp.MvcApplication.Application_Start() in C:\Proyectos\SAASApp\SAASApp\Global.asax.cs:18


[HttpException (0x80004005): Method not found: '!!0[] System.Array.Empty()'.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +483
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +350
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +305


[HttpException (0x80004005): Method not found: '!!0[] System.Array.Empty()'.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +661
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +96
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189

这是第一次发生在我身上,所以我现在被卡住了

101854 次浏览

我在生产服务器上遇到这种情况,而在开发机器上一切正常。

在目标计算机上安装.NET Framework 4.6已经解决了这个问题。

对不起,我来晚了,但是如果有人通过 TeamCity 构建得到了这个问题,我可以描述我们必须做什么。

.NET 4.6安装在我们的构建服务器上(但不在应用服务器上) ,RunnerType 是 Visual Studio (sln) ,Visual Studio 选项被设置为2015。

这迫使构建使用4.6,我需要将 Visual Studio 选项更改为2013,以强制构建使用4.5.2

只是对于其他面临这种情况的人:

如果查看 web.config 文件,就会发现在 <compilation>标记中,targetFramework的值被设置为低于4.6的版本。但实际上,在构建时,您通过。NET FrameWork 4.6或以上版本(相当于 ASP.NET MVC 4.6或以上版本)。

因此,如果你把 targetFramework的值改为4.6,那么错误的形状就会变成:

“ targetFramework”属性当前引用的版本晚于.NETFramework 的安装版本。

这是真正的错误,您可以通过安装适当的。在 Web 应用程序的生产环境中使用 NetFrameWork。

我尝试了这些解决方案,但没有成功。

对我来说,解决方案是进入应用程序池,转到2.0,在浏览器上执行网站,看到错误(因为版本是错误的) ,然后返回到4.0,“瞧”,我明白了,网站打开了。

对我来说,我有一个腐败的。在我的 WindowsServer2012R2上安装 NET。我不得不安装一个更新版本的。NET (v4.7.1) ,该网站现在正在工作。

在我的例子中,我没有访问 IIS 本身的权限,当我使用一个单独的方法时,我遇到了这个问题,这个方法没有任何特殊的东西,只有来自。净值2。

解决方案: 我提取了这个方法,并用.net 2.0创建了一个类库,它运行良好。

也许太晚了,但我得到了同样的问题和修复如下。 我使用 Visual Studio 2015,web.config 上的配置 编译指向。默认情况下是 NET FrameWork 4.6。我不能只编辑 web.config 文件。如果无法安装。NET FrameWork 4.6在服务器上,你的应用程序不使用它。

  1. 转到菜单 Debug > [ Project Name ] Properties > Application。
  2. 从 Target Framework 下拉列表中选择.NET Framework 4.5(或任何支持并兼容您的应用程序的服务器)。
  3. 重建。

我已经将4.6.x 降级到了4.5.2,它工作得很好。

将.NET Framework 更新到最新版本(4.7.2)解决了这个问题。 感谢@Andrey Kovalenko 的解决方案。

但是这个错误不应该是这样的吗,

enter image description here

我不确定告诉每个客户关于更新他们的。NET 框架。我有这个问题,特别是在 Windows Embedded 操作系统安装系统,只有在生产环境。

有没有其他的方法来克服这种行为,从我们的代码本身。 ?