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() для разрешения необязательной зависимости.