无法访问已释放的对象 对象名称:'UserManager`1'



我意识到这个问题在堆栈溢出上问了好几次,但我尝试了几个答案,但没有解决我的问题。我最近刚刚将unity添加到我的项目中,除了userManager类之外,一切都很好。如果我试图在会话中访问它,它会抛出一个不能访问错误,如我的标题所述。

   The Code that is throwing the issues and the Container below
    public AccountController(UserManager<ApplicationUser> userManager)
    {
        UserManager = userManager;
        // Start of new code
        UserManager.UserValidator = new UserValidator<ApplicationUser>(UserManager)
        {
            AllowOnlyAlphanumericUserNames = false,
        };
    }

        container.RegisterType<AdminController>();
        container.RegisterType<AccountController>();
        container.RegisterType<IBlogPostRepository, BlogPostRepository>(new HierarchicalLifetimeManager());
        container.RegisterType<IBlogViewRepository, BlogViewRepository>(new HierarchicalLifetimeManager());
        container.RegisterType<ITagRepository, TagRepository>(new HierarchicalLifetimeManager());
        container.RegisterType<ICategoryRepository, CategoryRepository>(new HierarchicalLifetimeManager());
        container.RegisterType<IBlogCategoryRepository, BlogCategoryRepository>(new HierarchicalLifetimeManager());
        container.RegisterType<IBlogTagRepository, BlogTagRepository>(new HierarchicalLifetimeManager());
        container.RegisterType<IApplicationUserRepository, ApplicationUserRepository>(new HierarchicalLifetimeManager());
        container.RegisterType<UserManager<ApplicationUser>>(new HierarchicalLifetimeManager());
        container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new InjectionConstructor(new CatchMediaContext()));
        container.RegisterType<DbContext, CatchMediaContext>(new HierarchicalLifetimeManager());

如果另一个对象有对userManager的引用,并且该对象被处置了,那么它可能会连同userManager一起处置。另一种可能是userManager需要某种尚未完成的初始化类型,并且它的属性抛出了一个误导性的dispose异常(这在winform控件中很常见)。

我遇到了同样的错误。我发现:父部分试图呈现两种形式。这两个表单是通过在不同的控制器中调用各自的操作来创建的。但是不同的控制器都引用了UserManager<ApplicationUser> userManager。我的解决方案:简单地删除一个表单,因此页面只有一个对UserManager的引用。

最新更新