JwtSecurityTokenHandler.метод set CertificateValidator не найден

просто обновил многие пакеты для службы Azure Mobile, и теперь я получаю ошибку "метод не найден". Это не представляется проблемой, но в другом месте. Есть идеи, какой пакет нужно понизить? Или еще один обход?

[MissingMethodException: Method not found: 'Void System.IdentityModel.Tokens.JwtSecurityTokenHandler.set_CertificateValidator(System.IdentityModel.Selectors.X509CertificateValidator)'.]
       Microsoft.WindowsAzure.Mobile.Service.Security.Providers.GoogleLoginProvider..ctor(HttpConfiguration config, IServiceTokenHandler tokenHandler) +0
       lambda_method(Closure , Object[] ) +174
       Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate() +419

    [DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(System.Web.Http.HttpConfiguration, Microsoft.WindowsAzure.Mobile.Service.Security.IServiceTokenHandler)' on type 'GoogleLoginProvider'. ---> Method not found: 'Void System.IdentityModel.Tokens.JwtSecurityTokenHandler.set_CertificateValidator(System.IdentityModel.Selectors.X509CertificateValidator)'. (See inner exception for details.)]
       Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate() +999
       Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) +589
       Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters) +109
       Autofac.Core.Resolving.InstanceLookup.<Execute>b__0() +63
       Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func`1 creator) +201
       Autofac.Core.Resolving.InstanceLookup.Execute() +262
       Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters) +282
       Autofac.Core.Resolving.InstanceLookup.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters) +72
       Autofac.Features.Collections.<>c__DisplayClass6.<RegistrationsFor>b__1(IComponentRegistration cr) +60
       System.Linq.WhereSelectArrayIterator`2.MoveNext() +66
       System.Linq.Buffer`1..ctor(IEnumerable`1 source) +335
       System.Linq.Enumerable.ToArray(IEnumerable`1 source) +77
       Autofac.Features.Collections.<>c__DisplayClass4.<RegistrationsFor>b__0(IComponentContext c, IEnumerable`1 p) +256
       Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) +191
       Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters) +109
       Autofac.Core.Resolving.InstanceLookup.Execute() +158
       Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters) +282
       Autofac.Core.Resolving.ResolveOperation.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters) +60
       Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable`1 parameters) +111
       Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters) +279
       Autofac.Core.Container.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters) +57
       Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) +175
       Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) +250
       Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) +72
       Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) +63
       Microsoft.WindowsAzure.Mobile.Service.Config.AutofacDependencyScope.GetServices(Type serviceType) +269
       System.Web.Http.DependencyScopeExtensions.GetServices(IDependencyScope services) +172
       System.Web.Http.DependencyScopeExtensions.GetLoginProviders(IDependencyScope services) +41
       Microsoft.WindowsAzure.Mobile.Service.Config.OwinAppBuilder.ConfigureAuthentication(IAppBuilder appBuilder, HttpConfiguration config) +379
       Microsoft.WindowsAzure.Mobile.Service.Config.OwinAppBuilder.Configuration(IAppBuilder appBuilder) +70
       Microsoft.WindowsAzure.Mobile.Service.<>c__DisplayClass5.<ConfigureOwin>b__4(IAppBuilder appBuilder) +40
       Microsoft.WindowsAzure.Mobile.Service.Config.StartupOwinAppBuilder.Configuration(IAppBuilder appBuilder) +234

4 ответов


Ive просто имел ту же проблему и получил мобильный сервис снова работает по

в консоли диспетчера пакетов в VS

uninstall-пакет WindowsAzure.MobileServices.Базовая программа.Сущность

uninstall-пакет WindowsAzure.MobileServices.Базовая программа.Таблицы

uninstall-пакет WindowsAzure.MobileServices.Бэкэнд

затем

установить-пакет пакет windowsazure.MobileServices.Backend-Версия 1.0.342

установить-пакет пакет windowsazure.MobileServices.Базовая программа.Столы-Версия 1.0.342

установить-пакет пакет windowsazure.MobileServices.Базовая программа.Entity-Версия 1.0.342

Не уверен, почему это происходит, хотя


хорошо, ребята, я, наконец, нашел проблему благодаря советам пола. Это из-за системы.IdentityModel.Жетоны.Версия пакета Jwt 4.0.0.

фактически, обновление Microsoft.Оуин.Безопасность.Пакет ActiveDirectory от 2.1.0 до 3.0.0 вызывает обновление пакета Jwt от 3.0.2 до 4.0.0

обходным путем является восстановление ActiveDirectory до 2.1.0 и Jwt до 3.0.2, затем нажмите F5 и наслаждайтесь AMS 439.

install-package System.IdentityModel.Tokens.Jwt -version 3.0.2

та же проблема здесь после обновления ams nuget pkg. Откат назад работал, но это скорее обходной путь, чем решение.

Edit: вы можете откатиться к версии 405.


моя команда все еще исследует эту проблему, и у меня еще нет всей информации, но до сих пор я заметил, что обновление до 439 не вызывает проблемы. Вы можете проверить это самостоятельно, создав новую мобильную службу в visual studio, затем перейдите в NuGet и обновите пакет Mobile Services .NET Backend Entity Framework до последней версии (439). После завершения обновления, нажмите F5 и вы увидите, что сервис загружается нормально без каких либо ошибок.

Я возможность воспроизвести проблему, выбрав Microsoft.Оуин.Безопасность.Пакет ActiveDirectory и его обновление с 2.1.0 до 3.0.0. Конечно, выбор опции "обновить все" в NuGet приведет к тому же (и многое другое).

пока мы продолжаем исследовать, каким должно быть точное исправление, можете ли вы подтвердить, что обновление до 439 без обновления до AD 3.0.0 устраняет проблему?