我在我的电脑上使用ASP.NET Core 2.0,Visual Studio 2017 Enterprise,版本15.5.4和本地数据库。
我第一次使用数据库工作,我遇到了以下问题:
处理请求时发生未处理的异常 ArgumentNullException:值不能为null 参数名称:connectionString。
在阅读并尝试了所有可能的建议以及可能的解决方案后,问题仍然存在。
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddDbContext<VideosContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
{
"ConnectionString": {
"DefaultConnection": "Server =(localdb)\\mssqllocaldb;Database=Videos;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
我做错了什么?提前感谢您的任何建议。
答案 0 :(得分:1)
您的应用设置JSON文件是否具有正确的语法?
let questions: String[] = [];
let num = Array.from(Array(5).keys()); //this makes num = [0, 1, 2, 3, 4]
var self = this;
asyncLoop(num, function (item, next) {
self.quesmodel.count().exec(function (err, count) {
var random = Math.floor(Math.random() * count)
self.quesmodel.findOne().skip(random).exec(function (err, result) {
questions.push(result._id);
test.questions = questions;
next();
});
});
}, function (err) {
if(err)
throw err;
else {
console.log(test.questions);
console.log('Finished!');
}
});
答案 1 :(得分:0)
您正在使用GetConnectionString
方法从appsettings.json获取连接字符串的值,因此您需要考虑该方法只是GetSection("ConnectionStrings")["name"]
的简写。
由于您在appsettings.json中有ConnectionString
(单数),因此预计会出现这样的错误(即没有 ConnectionString 键)。
如果您想保留单数密钥,则应使用GetSection("ConnectionString")["DefaultConnection"]
代替。否则,您需要更新appsettings.json文件。