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 устраняет проблему?