c# - 无法访问已处置的对象对象名称: 'UserManager` 1'

标签 c# asp.net-mvc unity-container

我意识到这个问题在堆栈溢出上被问了很多次,但我尝试了一些答案,但没有解决我的问题。我最近刚刚在我的项目中添加了统一性,除了 userManager 类之外,一切都工作正常。如果我尝试在 session 中访问它,它会抛出“无法访问”错误,如我的标题中所述。

   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 需要某种尚未完成的初始化,并且其属性会引发误导性的已处理异常(这在 winform 控件中很常见)。

关于c# - 无法访问已处置的对象对象名称: 'UserManager` 1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25071726/

相关文章:

javascript - 具有动态操作的 ASP.NET MVC RouteUrl

c# - 如何使用 Unity 2.0 注入(inject) Log4Net ILog 实现

c# - MVC 4 - 更改密码错误 : "Index (zero based) must be greater than or equal to zero..."

c# - 查找至少有 25 个子记录大于 0 的记录 - LAMBDA

c# - 跨进程事件 - 可靠地释放所有服务员

asp.net-mvc - Angular ng-include cshtml 页面

c# - 使用 Entity Framework 从 Id 列表中删除多个项目

c# - 使用 Prism、MVVM、Unity 查看切换导航

asp.net-mvc - 带有 WCF 服务的 ASP.NET MVC 依赖注入(inject) Unity - 工作示例解决方案

c# - 根据循环中另一个字典的值更新文本文件中的值