ASP.NET MVC 6 연결 스팅 config.json

asp.net asp.net-core asp.net-core-mvc asp.net-mvc entity-framework-core

문제

내가 가지고있는 문제는 프로그램을 실행할 때 "System.NullReferenceException"예외가 발생하는 것입니다. 문제가 무엇인지 잘 모릅니다. 또한이 문제로 인해 dnx를 사용하여 데이터 마이그레이션을 시작할 수 없습니다.

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

#config.json

 {
  "Data": {
  "DefaultConnection": {
  "Connectionstring": "Data Server=.\\ERKANDEMIR5E91;Initial Catalog=RegistrationDB;Integrated Security=True;"
      }
   }
}

scoolDbContext.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Data.Entity;
using Microsoft.Data.Entity.Metadata;
using School.Models;

namespace School.Context
{
    public class SchoolDbContext : DbContext
    {
       public DbSet<Course> Courses {get; set;}
    }
} 

Statup.cs

namespace School
{
public class Startup
{
    public static Microsoft.Extensions.Configuration.IConfiguration Configuration { get; set; }

    public Startup (IHostingEnvironment env)
    {
        //setup configuration sources
        Configuration = new ConfigurationBuilder()
       .AddJsonFile("config.json")
       .AddEnvironmentVariables()
       .Build();

    }
    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
        //add services to container
        services.AddEntityFramework().AddSqlServer().AddDbContext<SchoolDbContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
        services.AddMvc();

        //resolve dependency injections
        services.AddScoped<IRegistrationRepo, RegistrationRepo>();
        services.AddScoped<SchoolDbContext, SchoolDbContext>();           
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
        app.UseIISPlatformHandler();
        app.UseMvc();
        app.UseWelcomePage();

    }

    // Entry point for the application.
    public static void Main(string[] args) => WebApplication.Run<Startup>(args);
   }
 }

여기에 이미지 설명을 입력하십시오.

수락 된 답변

코드를 수정해야합니다.

public Startup (IHostingEnvironment env)
{
    //setup configuration sources
    Configuration = new Configuration()
        .AddJsonFile("config.json")
        .AddEnvironmentVariables();
}

public Startup (IHostingEnvironment env)
{
    //setup configuration sources
    Configuration = new ConfigurationBuilder()
        .AddJsonFile("config.json")
        .AddEnvironmentVariables()
        .Build();
}

또는

public Startup (IHostingEnvironment env)
{
    //setup configuration sources
    Configuration = new ConfigurationBuilder()
        .AddJsonFile("config.json")
        .AddJsonFile($"config.{env.EnvironmentName}.json", true)
        .AddEnvironmentVariables()
        .Build();
}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.