it-swarm.com.de

KeyNotFoundException in Start ConfigureServices AddMvc ()

Seit 30.05.2018 mein ASP.NET Core-Code in Startup.cs

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

ausnahme wie folgt werfen:

Beim Starten der Anwendung ist ein Fehler aufgetreten . KeyNotFoundException: Der angegebene Schlüssel war nicht im Wörterbuch vorhanden.

KeyNotFoundException: Der angegebene Schlüssel war nicht im Wörterbuch vorhanden . System.Collections.Generic.Dictionary.get_Item (TKey-Schlüssel) Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver.ComputeClassification (Zeichenfolge Abhängigkeit) Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver.ComputeClassification (Zeichenfolge Abhängigkeit) Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver.ComputeClassification (Zeichenfolge Abhängigkeit) Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver.ComputeClassification (Zeichenfolge Abhängigkeit) Microsoft.AspNetCore.Mvc.Internal.DefaultAssemblyPartDiscoveryProvider + CandidateResolver + d__4.MoveNext () System.Linq.Enumerable + d__17.MoveNext () System.Linq.Enumerable + WhereSelectEnumerableIterator.MoveNext () Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.GetApplicationPartManager (IServiceCollection Dienste) Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.AddMvcCore (IServiceCollection Dienste) Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddMvc (IServiceCollection Services) MyWebApiProject.Startup.ConfigureServices (IServiceCollection Services) in Startup.cs System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices (IServiceCollection Dienste) Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices () Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication ()

csproj

<TargetFramework>net461</TargetFramework>

<ItemGroup>
<PackageReference Include="Autofac" Version="4.6.2" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="4.1.0" />
<PackageReference Include="EntityFramework" Version="6.2.0" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Server" Version="0.2.0-preview2-22683" />
<PackageReference Include="Microsoft.AspNetCore.WebSockets" Version="1.0.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="5.1.5" />
<PackageReference Include="Microsoft.VisualStudio.SlowCheetah" Version="3.0.61" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.4.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="1.0.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="5.1.5" />
<PackageReference Include="System.Net.Http" Version="4.3.3" />

13
radnarock

Ich hatte die gleichen Probleme. Die Möglichkeiten zur Abhilfe finden Sie hier https://github.com/aspnet/Home/issues/3132

Für mich wähle ich die Option, den ApplicationPartManager vor dem Hinzufügen von MVC hinzuzufügen, z.

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

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

Quelle

28
Scott Willis

Das gleiche Problem hatten wir bereits vor ein paar Tagen.

Wir haben auch festgestellt, dass sowohl wir als auch Sie AspNetCore 1.1 (eine relativ alte Version) verwendet haben.

Wir hatten ein Update auf den neuesten Stand (2.1) und das Problem wurde behoben.

2
Zak

Wir stehen vor genau demselben Problem. So weit haben wir das Problem isoliert: 1. Wenn Sie eine ältere Version des Codes neu erstellen, ändert sich XXXXX.deps.json in den Build-Artefakten. 

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

Wurden 

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

Und 

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

Wurde (der Abschnitt über Abhängigkeiten bricht es)

  "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"
    },

Interessanterweise stellten wir fest, dass die Web-App gestartet wird und vollständig ausgeführt wird, wenn wir das zweite Segment rückgängig machen und die Abhängigkeiten entfernen. Also wenn Sie in einer Notlage sind 

Weitere Lösungsversuche: - Bereinigen Sie nicht verwendete Abhängigkeiten aus den betroffenen Projekten (funktionierte für 1 Build, schlug jedoch seltsamerweise erneut fehl - Einen neuen VS2017-Build-Agent zum Agent-Pool hinzugefügt und stattdessen mit diesem Build erstellt: Auch nicht geändert.

Wir werden auch ein paar weitere Überlegungen anstellen, z. B. ein Upgrade von @Scott Willis auf dotnet core 2.0

Prost,

Kennzeichen

0
Mark Conway