2017-08-24 34 views
0

我目前在.net核心2.0中创建了一个Web Api,我简直不能让我的连接字符串工作。.Net Core无法从appsettings.json读取连接字符串

我已经把我的ConnectionString到appsettings.json和startup.cs

加载Appsettings.json

{ 
"Logging": { 
"IncludeScopes": false, 
"Debug": { 
    "LogLevel": { 
    "Default": "Warning" 
    } 
}, 
"Console": { 
    "LogLevel": { 
    "Default": "Warning" 
    } 
}, 
"ConnectionStrings": { 
    "DatabaseConnection": "Data Source=VMDEVSLN-EOE\\SQLEXPRESS;Initial Catalog=EmployeeDB;Integrated Security=True" 
    } 
} 
} 

Startup.cs

 public Startup(IConfiguration configuration) 
    { 
     Configuration = configuration; 
    } 

    public IConfiguration Configuration { get; } 

    // This method gets called by the runtime. Use this method to add services to the container. 
    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc(); 
     var connection = Configuration.GetConnectionString("DatabaseConnection"); 
     services.AddDbContext<DatabaseContext>(options => options.UseSqlServer(connection)); 
    } 

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
    { 
     if (env.IsDevelopment()) 
     { 
      app.UseDeveloperExceptionPage(); 
     } 

     app.UseMvc(); 
    } 
} 

的DbContext

public class DatabaseContext : DbContext 
{ 
    public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options) 
    { 

    } 
    public DbSet<CustomerTB> CustomerTB { get; set; } 
} 

我相信问题存在于我的appsettings.json某处,但我只是找不到它

+1

如果你改变'Configuration.GetConnectionString( “的DatabaseConnection”)什么;'到 '配置[ “的ConnectionStrings:的DatabaseConnection”]' – Brivvirs

+0

小号直到相同的错误。没有解决它:( – Ekos

+0

如果连接字符串是从appSettings? – Brivvirs

回答

10

ConnectionStrings部分是Logging段内,我不知道这是你的意思,但无论如何你可以访问在DatabaseConnection这样的:

var connection = Configuration["Logging:ConnectionStrings:DatabaseConnection"]; 
+0

这是一个很棒的地方。 –

+0

谢谢,花了我几分钟的时间才想出来的。 – anserk

+1

@KirkLarkin:从技术上说,“Logging:ConnectionStrings:DatabaseConnection”没有错,但ConnectionStrings应该是Logging的兄弟,而不是它的子级,以便您可以使用ConnectionStrings访问它: DatabaseConnection。 –

0

在asp.net核心1.x中,您应该通过ConfigurationBuilder读取设置。在Startup.cs

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) 
     .AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

这可能是在asp.net核心相同的方法2.

+0

这没有解决问题:( – Ekos