Я получать следующее исключение при попытке использовать пользовательские DbContext в Configure
метода в Startup.cs
файле. Я использую ASP.NET Core в версии 2.0.0-preview1-005977
Необработанное исключение: System.Exception: не удалось разрешить службу типа 'Communicator.Backend.Data.CommunicatorContext' для параметра 'dbContext' метода 'Configure' для типа 'Communicator.Backend.Startup'. ---> System.InvalidOperationException: Невозможно разрешить определенную службу "Communicator.Backend.Data.CommunicatorContext" из корневого поставщика.
Это исключение также выдается в случае, когда я пытаюсь получить другой экземпляр.
Необработанное исключение: System.Exception: не удалось разрешить службу типа 'Communicator.Backend.Services.ILdapService'
...
Вот мои ConfigureServices
и Configure
методы.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<CommunicatorContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddCookieAuthentication();
services.Configure<LdapConfig>(Configuration.GetSection("Ldap"));
services.AddScoped<ILdapService, LdapService>();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, CommunicatorContext dbContext, ILdapService ldapService)
{
app.UseAuthentication();
app.UseWebSockets();
app.Use(async (context, next) =>
{
if (context.Request.Path == "/ws")
{
if (context.WebSockets.IsWebSocketRequest)
{
WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
await Echo(context, webSocket);
}
else
{
context.Response.StatusCode = 400;
}
}
else
{
await next();
}
});
app.UseMvc();
DbInitializer.Initialize(dbContext, ldapService);
}