【发布时间】:2021-02-08 18:59:11
【问题描述】:
我有一个 .Net Core 3.1 程序返回错误
System.ArgumentNullException: '值不能为空。 (参数'connectionString')'
当我尝试登录系统时。
我已经设置了断点
public IConfiguration Configuration { get; }
在构建时,可以看到连接字符串,但我立即登录它返回 null。
下面是我的代码。
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.AddRazorPages();
services.AddSession();
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/Login/Login", "");
});
services.AddDbContext<CENTREContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DatabaseConnection")));
//var connection = Configuration.GetConnectionString("ConnectionStrings");
//services.Configure<ConnectionStrings>(Configuration.GetSection("DatabaseConnection"));
//services.AddDbContext<CENTREContext>(options => options.UseSqlServer(connection));
}
上下文类
public CENTREContext(DbContextOptions<CENTREContext> options)
: base(options)
{
}
public CENTREContext()
{ }
public IConfiguration Configuration { get; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer(Configuration.
GetConnectionString("ConnectionStrings:DatabaseConnection"));
}
}
appsettings.json
{
"ConnectionStrings": {
"DatabaseConnection": "Server=xx-xx;Database=CENTRE;UID=xx;Password=xxx;"
},
"AllowedHosts": "*"
}
我已经尝试过,但似乎没有任何效果。 我们将不胜感激。
【问题讨论】:
-
您在一个地方使用
Configuration.GetConnectionString("DatabaseConnection"),但在另一个地方使用Configuration.GetConnectionString("ConnectionStrings:DatabaseConnection")- 它们不可能都是正确的。 -
@MartinCostello 我以前试过这个,错误还是一样
标签: c# asp.net-core-3.1