ConfigureServices
вызывается до Configure
в Startup
.Вы, кажется, создаете свою конфигурацию после того, как уже пытаетесь получить к ней доступ.
Переместите код сборки, который будет вызываться ранее, в потоке
private IConfiguration Configuration;
public Startup(IHostingEnvironment env) {
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
Configuration = builder.Build(); //<--
}
public void ConfigureServices(IServiceCollection services) {
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddDbContext<ApplicationDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))
);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
} else {
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseMvc();
}
Вы должны удалить переопределение OnConfiguring
изDbContext, поскольку для него не настроен базовый путь, поэтому, скорее всего, файл настроек не найден.