Произошла ошибка при запуске приложения.
InvalidOperationException: схема уже существует: Identity.Application
Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme (имя строки, действие configureBuilder)
Я работаю над ASP.NET Core WEB API с шаблоном Angular в VS 2017. У меня следующий код в методе ConfigureServices () класса Statrtup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AuthDbContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("AuthDbContextConnection"));
});
services.AddDbContext<AppNgDbContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("AppNgDbContextConnection"));
});
services.AddTransient<SecurityService>();
services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<AuthDbContext>()
.AddDefaultTokenProviders();
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
// 1. Load the JST Secret Key to Verify and Validate Token
// read key from appsettings.json
var secretKey = Convert.FromBase64String(Configuration["JWTAppSettings:SecretKey"]);
// 2. Defining the Mechanism for Validating Received Token from Client
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
ValidateAudience = false,
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(secretKey)
};
});
services.AddScoped<IRepository<Orders, int>, OrdersRepository>();
services.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver())
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
// In production, the Angular files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
}
Когда я запускаю приложение, оно должно загружаться, чтобы я мог получить доступ к WEB API, но, к сожалению, выдает следующую ошибку
Произошла ошибка при запуске приложения.
InvalidOperationException: схема уже существует: Identity.Application
Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme (имя строки, действие configureBuilder)
InvalidOperationException: схема уже существует: Identity.Application
Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme (имя строки, действие configureBuilder)
Microsoft.AspNetCore.Authentication.AuthenticationBuilder + <> c__DisplayClass4_0.b__0 (AuthenticationOptions o)
Microsoft.Extensions.Options.ConfigureNamedOptions.Configure (имя строки, параметры TOptions)
Microsoft.Extensions.Options.OptionsFactory.Create (имя строки)
Microsoft.Extensions.Options.OptionsManager + <> c__DisplayClass5_0.b__0 ()
System.Lazy.ViaFactory (режим LazyThreadSafetyMode)
System.Lazy.ExecutionAndPublication (LazyHelper executeAndPublication, bool useDefaultConstructor)
System.Lazy.CreateValue ()
Microsoft.Extensions.Options.OptionsCache.GetOrAdd (имя строки, Func createOptions)
Microsoft.Extensions.Options.OptionsManager.Get (имя строки)
Microsoft.Extensions.Options.OptionsManager.get_Value ()
Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor (параметры IOptions, схемы IDictionary)
Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider..ctor (параметры IOptions)
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor (ConstructorCallSite constructorCallSite, область действия ServiceProviderEngineScope)
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite (IServiceCallSite callSite, аргумент TArgument)
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped (ScopedCallSite scopedCallSite, область действия ServiceProviderEngineScope)
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton (SingletonCallSite singletonCallSite, область действия ServiceProviderEngineScope)
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor.VisitCallSite (IServiceCallSite callSite, аргумент TArgument)
Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine + <> c__DisplayClass1_0.b__0 (область действия ServiceProviderEngineScope)
Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService (Тип serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService (Тип serviceType)
Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService (Тип serviceType)
Microsoft.Extensions.Internal.ActivatorUtilities + ConstructorMatcher.CreateInstance (поставщик IServiceProvider)
Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance (поставщик IServiceProvider, тип instanceType, параметры объекта [])
Microsoft.AspNetCore.Builder.UseMiddlewareExtensions + <> c__DisplayClass4_0.b__0 (RequestDelegate далее)
Microsoft.AspNetCore.Builder.Internal.ApplicationBuilder.Build ()
Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication ()