Новый проект asp.net mvc с использованием owin, webapi, mvc и DI (SimpleInjector) отлично работает, если я удаляю DI lib из проекта. Однако, после введения, приложение взрывается при регистрации компонентов OWIN для DI. Конфигурация запуска Owin будет удара и работает без ошибок, но когда приходит время, чтобы зарегистрировать зависимости (перечислены ниже), я получаю следующее сообщение об ошибке:ASP.NET MVC 5 + Owin + SimpleInjector
An exception of type 'System.InvalidOperationException' occurred in Microsoft.Owin.Host.SystemWeb.dll but was not handled in user code
Additional information: No owin.Environment item was found in the context.
SimpleInjector Регистрационный код:
container.RegisterPerWebRequest<IUserStore<ApplicationUser>>(() => new UserStore<ApplicationUser>());
container.RegisterPerWebRequest<HttpContextBase>(() => new HttpContextWrapper(HttpContext.Current));
// app fails on call to line below...
container.RegisterPerWebRequest(() => container.GetInstance<HttpContextBase>().GetOwinContext());
container.RegisterPerWebRequest(() => container.GetInstance<IOwinContext>().Authentication);
container.RegisterPerWebRequest<DbContext, ApplicationDbContext>();
Обновление - Полный Трассировка стека
at System.Web.HttpContextBaseExtensions.GetOwinContext(HttpContextBase context) at WebApplication1.App_Start.SimpleInjectorInitializer.<>c__DisplayClass6.b__2() in b:\temp\WebApplication1\WebApplication1\App_Start\SimpleInjectorInitializer.cs:line 41 at lambda_method(Closure) at SimpleInjector.Scope.CreateAndCacheInstance[TService,TImplementation](ScopedRegistration
2 registration) at SimpleInjector.Scope.GetInstance[TService,TImplementation](ScopedRegistration
2 registration) at SimpleInjector.Scope.GetInstance[TService,TImplementation](ScopedRegistration2 registration, Scope scope) at SimpleInjector.Advanced.Internal.LazyScopedRegistration
2.GetInstance(Scope scope) at lambda_method(Closure) at SimpleInjector.InstanceProducer.GetInstance()
Можете ли вы опубликовать полную статистику стека? – Steven
Не удается ли он в точке 'container.Verify()'? – qujck
Ошибка при регистрации зависимостей. Это строка: container.RegisterPerWebRequest (() => container.GetInstance(). Аутентификация); –
bbqchickenrobot