Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not load type 'System.IdentityModel.Tokens.JwtSecurityToken'

I have two libraries. One consumes the other and the consuming library is is itself used by a Web app. The Web app returns the error below whereas the code instantiating the type ( doping JWT signature validation ) is successfully executed in unit tests by both libraries. libraries, app are target framework .NET 4.5.2 I validated that the Web app's .csproj file has a valid reference

<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>

I do not find the assembly in the GAC to remove

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

I have tried clean, rebuild, reboot, delete /bin and /lib and rebuilt and am at a loss. Personally, this may not be System.IdentityModel.Tokens.Jwt per se, but guidance I need on troubleshooting such as type loading errors. I have resintalled the .Tokens package specifically and indeed all packages:

nuget install packages.config

I still get the error, not on build, but only on execution:

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
like image 374
Tom Schulte Avatar asked Jul 31 '17 15:07

Tom Schulte


1 Answers

I've resolved this issue by downgrading the package System.IdentityModel.Tokens.Jwt to 4.0

And there is an issue on GitHub https://github.com/aspnet/AspNetKatana/issues/76

like image 50
M.Almokadem Avatar answered Oct 15 '22 07:10

M.Almokadem