KeyNotFoundException при запуске ConfigureServices AddMvc () - PullRequest
0 голосов
/ 01 июня 2018

С 30.05.2018 мой код ASP.NET Core в Startup.cs

public IServiceProvider ConfigureServices(IServiceCollection services)
{
   // Add services to the collection.
   services.AddMvc();
}

вызывает исключение, как показано ниже:

Произошла ошибка при запуске приложения.KeyNotFoundException: Указанный ключ отсутствует в словаре.

KeyNotFoundException: Указанный ключ отсутствует в словаре.System.Collections.Generic.Dictionary.get_Item (ключ TKey) Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver.ComputeClassification (строчная зависимость).Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver.ComputeClassification (строчная зависимость) Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver.ComputeClassification (строчная зависимость) +.Linq.Enumerable + d__17.MoveNext () System.Linq.Enumerable + WhereSelectEnumerableIterator.MoveNext () Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.GetApplicationPartManager.ore (сервисы IServiceCollection)ConfigureServices (сервисы IServiceCollection) Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices ()

Ответы [ 3 ]

0 голосов
/ 02 июня 2018

У меня были те же проблемы.Варианты для исправления этой ситуации изложены здесь https://github.com/aspnet/Home/issues/3132

Для меня я выбираю вариант добавления ApplicationPartManager перед добавлением MVC, например.

var manager = new ApplicationPartManager();
manager.ApplicationParts.Add(new AssemblyPart(typeof(Startup).Assembly));

services.AddSingleton(manager);
services.AddMvc();

Источник

0 голосов
/ 02 июня 2018

Мы столкнулись с точно такой же проблемой.Вот как далеко мы выделили проблему: 1. Пересборка более старой версии кода приводит к изменению файла XXXXX.deps.json в артефактах сборки.

 "compilationOptions": {
"defines": [
  "TRACE",
  "DEBUG",
  "NET461"
],

Стал

"compilationOptions": {
"defines": [
  "TRACE",
  "DEBUG",
  "NETFRAMEWORK",
  "NET461"
],

И

      "HealthBizModel/1.0.0": {
    "runtime": {
      "HealthBizModel.dll": {}
    }
  },
  "HealthBizService/1.0.0": {
    "dependencies": {
      "HealthBizModel": "1.0.0"
    },

Стал (раздел зависимостей это то, что его ломает)

  "HealthBizModel/1.0.0": {
    "dependencies": {
      "System.Runtime.Reference1": "4.0.20.0",
      "System.Net.Primitives.Reference1": "4.0.10.0",
      "System.Net.Http.WebRequest": "4.0.0.0"
    },
    "runtime": {
      "HealthBizModel.dll": {}
    }
  },
  "HealthBizService/1.0.0": {
    "dependencies": {
      "HealthBizModel": "1.0.0",
      "System.Text.Encoding.Reference1": "4.0.10.0"
    },

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

Дальнейшие попытки разрешения: - Очистить неиспользуемые зависимости от выполненных проектов (работал для 1 сборки, но, как ни странно, снова начал отказывать - Добавил новый агент сборки VS2017 в пул агентов и построил с этим вместо этого: также не изменилось.

Мы также попробуем еще несколько идей, таких как обновление @Scott Willis до dotnet core 2.0

Cheers,

Mark

0 голосов
/ 01 июня 2018

Мы столкнулись с той же самой проблемой, которая началась несколько дней назад.

Мы также заметили, что и мы, и вы использовали AspNetCore 1.1 (довольно старая версия).

Вкл.догадка, мы обновились до последней (2.1), и это решило нашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...