c# - ASP.NET CORE MVC | System.ArgumentNullException : '值不能为空。' | Configuration.GetConnectionString
问题描述
我在 Asp.NET Core 上使用 MVC,实际上,Startup 没有找到我的 ConnectionString 写入 appsettings.json。我已经尝试了 3 种不同的方式(评论中有 2 种)。不要关注“XXX”。
让我们看看: Startup.cs
public void ConfigureServices(IServiceCollection services)
{
[...]
services.AddDbContext<ApplicationDbContext>(options =>
options.UseOracle(Configuration.GetConnectionString("Web")));
//options.UseOracle(Configuration.GetSection("ConnectionStrings")["Web"]));
//options.UseOracle(Configuration.GetSection("Web")["ConnectionString"]));
[...]
}
appsettings.json:
[...]
"ConnectionStrings": {
"Test1": {
"ConnectionString": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XX.XX.X.XXX)(PORT=XXXX))(CONNECT_DATA=(SERVICE_NAME=XXX)));User Id=XXXXX;Password=XXXXX;",
"ProviderName": "Oracle.ManagedDataAccess.Client"
},
"Web": {
"ConnectionString": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XX.XX.X.XXX)(PORT=XXXX))(CONNECT_DATA=(SERVICE_NAME=XXX)));User Id=XXXXX;Password=XXXXX;",
"ProviderName": "Oracle.ManagedDataAccess.Client"
},
"Test2": {
"ConnectionString": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XX.XX.X.XXX)(PORT=XXXX))(CONNECT_DATA=(SERVICE_NAME=XXX)));User Id=XXXXX;Password=XXXXX;",
"ProviderName": "Oracle.ManagedDataAccess.Client"
}
}
[...]
&当我构建项目以在浏览器中运行时,我总是遇到这个错误:
System.ArgumentNullException : '值不能为空。'
你有什么主意吗 ?
解决方案
该方法IServiceCollection.GetConnectionString
只是在键中添加前缀ConnectionStrings:
。
然后Configuration.GetConnectionString("Web")
类似于Configuration["ConnectionStrings:Web"]
。
在您的情况下,您需要:
Configuration["ConnectionStrings:Web:ConnectionString"]
//or
Configuration.GetConnectionString("Web:ConnectionString")
推荐阅读
- javascript - 为什么这个功能会破坏我的表单功能?
- c++ - 将 QAction 的 QString 文本作为参数传递
- java - 如何在 Spring Boot 中同时调用具有相同主题的 Kafkalistener?
- spartacus-storefront - 斯巴达克斯服务人员禁用
- java - Kafka Streams API:会话窗口不兼容的类型
- python - 使用 Python 创建 Google 文档
- vba - 通过表格更新表格
- javascript - 如何将axios中的标头作为密钥传递
- javascript - 使用参数时 JQuery localStorage.setItem 不存储
- mongodb - MongoDb:聚合在最终结果中省略了文档