ASP.NET MVC 6 连接字符串 config.json
ASP.NET MVC 6 Connection Sting config.json
我遇到的问题是当我 运行 程序时出现 "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();
}
我遇到的问题是当我 运行 程序时出现 "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();
}