Autofac Hangfire - запрошенный сервис Microsoft.Owin.IOwinContext не зарегистрирован

Я использую пакет Hangfire.Autofac, чтобы попытаться заставить Hangfire работать с моим проектом Web Api.

У меня есть два сервиса, которые я регистрирую в своем классе запуска (используя Owin), первый выглядит так

builder.RegisterType<SimpleService>().As<ISimpleService>().InstancePerDependency();

Другой немного сложнее и выглядит так

builder.Register(x =>
{
  var client = new CrmServiceClient(connString);
  var serviceProxy = client.OrganizationServiceProxy;
  serviceProxy.EnableProxyTypes();

  var owin = x.Resolve<IOwinContext>();
  var idClaim = owin?.Authentication?.User?.Claims?.FirstOrDefault(y => y.Type == CrmImpersonationClaimType)?.Value;
  Guid id;
  if (Guid.TryParse(idClaim, out id))
   {
        serviceProxy.CallerId = id;
   }
  return serviceProxy;
}).As<IOrganizationService>().ExternallyOwned().InstancePerDependency();

IOrganizationService внедряется в SimpleService - всякий раз, когда я вызываю свой метод внутри SimpleService, я получаю ошибку. Если я не внедряю IOrganizationService, все остальные зависимости разрешаются нормально.

ошибка

Autofac.Core.Registration.ComponentNotRegisteredException

Запрошенный сервис Microsoft.Owin.IOwinContext не был зарегистрирован. Чтобы избежать этого исключения, либо зарегистрируйте компонент для предоставления услуги, проверьте регистрацию службы с помощью IsRegistered(), либо используйте метод ResolveOptional() для разрешения необязательной зависимости.

0 ответов

Другие вопросы по тегам