Метод не найден: '!! 0 [] System.Array.Empty ()'

95

Я создал новое приложение с 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

В первый раз это происходит со мной, поэтому я застрял в данный момент

  • 0
    возможный дубликат MVC 5 Bundle Error
Теги:
asp.net-mvc
asp.net-mvc-3

9 ответов

203
Лучший ответ

У меня была такая ситуация на производственном сервере, пока на машине разработки все было в порядке.

Установка .NET Framework 4.6 на целевой машине устранила проблему.

  • 10
    Спасибо. Что за невероятное сообщение об ошибке!
  • 42
    PC LOAD LETTER!
Показать ещё 5 комментариев
21

Извините за опоздание на вечеринку, но в случае, если кто-то другой получит эту проблему через сборку TeamCity, я могу описать, что мы должны были сделать.

.NET 4.6 был установлен на нашем сервере сборки (но не на сервере приложений), а RunnerType был Visual Studio (sln), а опция Visual Studio была установлена ​​на 2015 год.

Это заставило сборку использовать 4.6, и мне нужно было изменить параметр Visual Studio на 2013, чтобы заставить сборку использовать 4.5.2

  • 5
    Мой хороший коллега указал мне, что вы можете собрать с помощью Visual Studio 2015, если у вашего агента сборки есть требование DotNetFrameworkTargetingPack4.5.2_Path TeamCity затем построит решение до 4.5.2, даже если установлен 4.6
  • 2
    Я решил эту проблему, используя пакет разработчика 4.5.2, как предложил @gman. В ситуациях, когда вы не хотите устанавливать 4.6, это кажется лучшим решением.
Показать ещё 2 комментария
9

Просто для других, столкнувшихся с этой ситуацией:

если вы посмотрите в файле web.config, вы поймете, что в теге <compilation> у вас есть значение targetFramework, установленное в версии ниже 4.6. но на самом деле во время сборки вы опубликовали свое приложение через .NET FrameWork 4.6 или выше (соответствует ASP.NET MVC 4.6 и выше).

Итак, если вы измените значение targetFramework на 4.6, ошибка изменит форму на:

Атрибут 'targetFramework' в настоящее время ссылается на версию, которая позже установленной версии .NET Framework.

это реальная ошибка, и вы избавитесь от нее, установив соответствующую версию .NET Framework в производственную среду вашего веб-приложения.

  • 0
    Однако после того, как вы это сделаете, и в зависимости от шаблона проекта, выбранного при создании приложения, если у вас установлены приложения Insight и CodeDom, вам, возможно, придется удалить их, как и я. Я получил ошибку массива, которая восходит к roslyn и Microsoft Application Insight.
1

Я пробую это решение без успеха.

Решение для меня было в пуле приложений, превратилось в 2.0, запустил сайт в браузере, посмотрел ошибку (потому что версия неверна) и вернулась к 4.0 и "вуаля", я получил ее, на веб-сайте открыто.

0

Обновление до.NET 4.6 сделало свое дело! (Большое спасибо, Андрей Коваленко!)

0

Я понизил 4.6.x до 4.5.2, и он работал нормально.

0

Может быть, слишком поздно, но я получил ту же проблему и исправил, как показано ниже. Я использую Visual Studio 2015, компиляция конфигурации в web.config по умолчанию указывает на.NET FrameWork 4.6. Я не мог просто редактировать только файл web.config. Если вы не можете установить.NET FrameWork 4.6 на сервер и ваше приложение не использует его.

  1. Перейдите в меню "Отладка"> "[Имя проекта] Свойства"> "Приложение".
  2. выберите.NET Framework 4.5 (или любой сервер, поддерживающий и совместимый с вашим приложением) из раскрывающегося списка Target Framwork.
  3. Восстановите снова.
0

В моем случае у меня нет доступа к самому IIS, и у меня возникла эта проблема, когда я использовал единственный метод, который не имеет ничего особенного, только вещи из.net 2.

Решение: я извлек этот метод и создал библиотеку классов с.net 2.0, и она работает.

0

В моем случае у меня была коррумпированная установка .NET на моем Windows Server 2012 R2. Мне пришлось установить более новую версию .NET(v4.7.1), и сайт теперь работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню