无法加载类型'System.IdentityModel.Tokens.JwtSecurityToken'

Tom*_*lte 5 c# asp.net-mvc types jwt

我有两个图书馆.一个消耗另一个,消费库本身由Web应用程序使用.Web应用程序返回以下错误,而实例化类型的代码(兴奋剂JWT签名验证)在两个库的单元测试中成功执行.库,app是目标框架.NET 4.5.2我验证了Web应用程序的.csproj文件有一个有效的引用

<Reference Include="System.IdentityModel.Tokens.Jwt, Version=5.1.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">      <HintPath>..\packages\System.IdentityModel.Tokens.Jwt.5.1.4\lib\net451\System.IdentityModel.Tokens.Jwt.dll</HintPath>
 </Reference>
Run Code Online (Sandbox Code Playgroud)

我没有在GAC中找到要删除的程序集

C:\Program Files (x86)\Microsoft Visual Studio 11.0>gacutil /u System.IdentityMo
del.Tokens.Jwt
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.17929
Copyright (c) Microsoft Corporation.  All rights reserved.

No assemblies found matching: System.IdentityModel.Tokens.Jwt
Number of assemblies uninstalled = 0
Number of failures = 0
Run Code Online (Sandbox Code Playgroud)

我已经尝试过清理,重建,重启,删除/ bin和/ lib并重建并且不知所措.就个人而言,这可能不是System.IdentityModel.Tokens.Jwt本身,但我需要进行故障排除,如类型加载错误.我已经特别修改了.Tokens软件包以及所有软件包:

nuget install packages.config
Run Code Online (Sandbox Code Playgroud)

我仍然得到错误,而不是构建,但仅在执行时:

Server Error in '/' Application.

Could not load type 'System.IdentityModel.Tokens.JwtSecurityToken' from assembly 'System.IdentityModel.Tokens.Jwt, Version=5.1.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

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.TypeLoadException: Could not load type 'System.IdentityModel.Tokens.JwtSecurityToken' from assembly 'System.IdentityModel.Tokens.Jwt, Version=5.1.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Source Error: 


Line 12:     protected void Application_Start(object sender, EventArgs e)
Line 13:     {
Line 14:       GlobalConfiguration.Configure(WebApiConfig.Register);
Line 15:     }
Line 16: 

Source File: C:\Dev\Git\Connect-Applications\ControllerlessApp\src\Connect.Rest.MainApp\Global.asax.cs    Line: 14 

Stack Trace: 


[TypeLoadException: Could not load type 'System.IdentityModel.Tokens.JwtSecurityToken' from assembly 'System.IdentityModel.Tokens.Jwt, Version=5.1.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.]
   System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes) +0
   System.Reflection.RuntimeAssembly.GetExportedTypes() +31
   Plex.Web.UI.ServiceResolverDefaults..ctor() +842

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +138
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +105
   System.Activator.CreateInstance(Type type) +12
   Plex.Activation.AssemblyDefaultRegistrationConvention.Process(Type type, Registry registry) +118
   StructureMap.StringExtensions.Each(IEnumerable`1 enumerable, Action`1 action) in c:\BuildAgent\work\767273992e840853\src\StructureMap\Extensions.cs:10
   StructureMap.StringExtensions.Each(IEnumerable`1 enumerable, Action`1 action) in c:\BuildAgent\work\767273992e840853\src\StructureMap\Extensions.cs:10
   StructureMap.Graph.AssemblyScanner.ScanForAll(PluginGraph pluginGraph) in c:\BuildAgent\work\767273992e840853\src\StructureMap\Graph\AssemblyScanner.cs:248
   StructureMap.Graph.PluginGraph.Seal() in c:\BuildAgent\work\767273992e840853\src\StructureMap\Graph\PluginGraph.cs:121
   StructureMap.PluginGraphBuilder.Build() in c:\BuildAgent\work\767273992e840853\src\StructureMap\PluginGraphBuilder.cs:72
   StructureMap.Container..ctor(Action`1 action) in c:\BuildAgent\work\767273992e840853\src\StructureMap\Container.cs:25
   Plex.Activation.ServiceResolverBuilder.Initialize(ApplicationContext context) +288
   Connect.Rest.Framework.Hosting2.Infrastructure.AppDomainSharedServices.get_ServiceResolver() +1373
   Connect.Rest.Framework.Hosting2.WebApiConfig.Register(HttpConfiguration config) +80
   System.Web.Http.GlobalConfiguration.Configure(Action`1 configurationCallback) +63
   Connect.Rest.MainApp.WebApiApplication.Application_Start(Object sender, EventArgs e) in C:\Dev\Git\Connect-Applications\ControllerlessApp\src\Connect.Rest.MainApp\Global.asax.cs:14

[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +544
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +186
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +402
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +343

[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +579
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +112
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +716
Run Code Online (Sandbox Code Playgroud)

M.A*_*dem 7

我已经通过将软件包System.IdentityModel.Tokens.Jwt降级到4.0来解决了这个问题

GitHub上有一个问题 https://github.com/aspnet/AspNetKatana/issues/76