首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET核心Web激活时引发异常

.NET核心Web激活时引发异常
EN

Stack Overflow用户
提问于 2019-05-15 17:47:18
回答 2查看 17.8K关注 0票数 1

当向我的web发送post请求时,我会得到以下异常:

WAM4.WebAPI.Infrastructure.Data.Repositories.UserRepository Microsoft.AspNetCore.Identity.UserManager1[[WAM4.WebAPI.Infrastructure.Identity.AppUser, WAM4.WebAPI.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]. ---> Autofac.Core.DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Microsoft.AspNetCore.Identity.UserManager1WAM4.WebAPI.Infrastructure.Identity.AppUser‘:在激活WAM4.WebAPI.Core.UseCases.RegisterUserUseCase -> 'Microsoft.AspNetCore.Identity.IUserStore1[WAM4.WebAPI.Infrastructure.Identity.AppUser] store' of constructor 'Void .ctor(Microsoft.AspNetCore.Identity.IUserStore1WAM4.WebAPI.Infrastructure.Identity.AppUser,Microsoft.Extensions.Options.IOptions1[Microsoft.AspNetCore.Identity.IdentityOptions], Microsoft.AspNetCore.Identity.IPasswordHasher1WAM4.WebAPI.Infrastructure.Identity.AppUser,System.Collections.Generic.IEnumerable1[Microsoft.AspNetCore.Identity.IUserValidator1WAM4.WebAPI.Infrastructure.Identity.AppUser],时引发异常,可以使用可用的服务和参数:无法解析参数’Microsoft.AspNetCore.Identity.IUserStore1[WAM4.WebAPI.Infrastructure.Identity.AppUser] store' of constructor 'Void .ctor(Microsoft.AspNetCore.Identity.IUserStore1WAM4.WebAPI.Infrastructure.Identity.AppUser,Microsoft.Extensions.Options.IOptions1[Microsoft.AspNetCore.Identity.IdentityOptions], Microsoft.AspNetCore.Identity.IPasswordHasher1WAM4.WebAPI.Infrastructure.Identity.AppUser,System.Collections.Generic.IEnumerable1[Microsoft.AspNetCore.Identity.IUserValidator1WAM4.WebAPI.Infrastructure.Identity.AppUser],调用该异常。System.Collections.Generic.IEnumerable1[Microsoft.AspNetCore.Identity.IPasswordValidator1WAM4.WebAPI.Infrastructure.Identity.AppUser],Microsoft.AspNetCore.Identity.ILookupNormalizer,Microsoft.AspNetCore.Identity.IdentityErrorDescriber,System.IServiceProvider,Microsoft.Extensions.Logging.ILogger1[Microsoft.AspNetCore.Identity.UserManager1WAM4.WebAPI.Infrastructure.Identity.AppUser])'.

下面是我的两个模块,它们将"build()“放入容器和AppUser类中:

代码语言:javascript
复制
    public class InfrastructureModule : Module
        {
            protected override void Load(ContainerBuilder builder)
            {
                builder.RegisterType<UserRepository>().As<IUserRepository>().InstancePerLifetimeScope();
                builder.RegisterType<JwtFactory>().As<IJwtFactory>().SingleInstance().FindConstructorsWith(new InternalConstructorFinder());
                builder.RegisterType<JwtTokenHandler>().As<IJwtTokenHandler>().SingleInstance().FindConstructorsWith(new InternalConstructorFinder());
                builder.RegisterType<TokenFactory>().As<ITokenFactory>().SingleInstance();
                builder.RegisterType<JwtTokenValidator>().As<IJwtTokenValidator>().SingleInstance().FindConstructorsWith(new InternalConstructorFinder());
                builder.RegisterType<Logger>().As<ILogger>().SingleInstance();
            }
        }


public class CoreModule : Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterType<RegisterUserUseCase>().As<IRegisterUserUseCase>().InstancePerLifetimeScope();
            builder.RegisterType<LoginUseCase>().As<ILoginUseCase>().InstancePerLifetimeScope();
            builder.RegisterType<ExchangeRefreshTokenUseCase>().As<IExchangeRefreshTokenUseCase>().InstancePerLifetimeScope();
        }
    }

using Microsoft.AspNetCore.Identity;
//using System;
//using System.ComponentModel.DataAnnotations;

namespace WAM4.WebAPI.Infrastructure.Identity
{
    public class AppUser : IdentityUser
    {
        //Add additional profile data for application users by adding properties to this class
        //[Required]
        //[MaxLength(100)]
        //public string FirstName { get; set; }

        //[Required]
        //[MaxLength(100)]
        //public string LastName { get; set; }

        ////[Required]
        ////public byte SecurityLevel { get; set; }

        //[Required]
        //public DateTime CreateDate { get; set; }

        //public int Pending { get; set; }

        //public string Avatar { get; set; }
    }
}

我已经检查了UserRepository是否在Load中正确注册,以及是否正确编译了AppUser类。任何关于我应该研究的领域来解决这一例外的指导,都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-15 23:24:09

好吧,我知道我做错了什么。

我从模板JWTToken中省略了Startup.cs代码,因为我还没有进入这个部分。大错特错,一整天都在想它是一个不同的issue...Made --我的startup.cs --和我遵循的模板(包括所有的JWT和身份验证代码)一样--...and BAM,轻松修复。花了整整8个小时才弄清楚我做错了什么。

谢谢伊利亚的帮助,非常感谢。

票数 1
EN

Stack Overflow用户

发布于 2019-05-15 17:50:59

如果没有您的注册,很难准确地告诉您,但是看起来您在容器中缺少了IUserStore的注册。您能否通过例如,在执行所有注册之后执行解析来验证它是否已注册?

由于它是一个通用接口IUserStore<TUser>,您是否可能没有向WAM4.WebAPI.Infrastructure.Identity.AppUser注册正确的泛型版本?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56155040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档