Ошибка ASP.NET Core 2.2 при настройке DBContext (работает в Kestrel, а не в IIS Express) - PullRequest
0 голосов
/ 24 января 2019

У меня есть веб-проект .Net Core 2.2, в котором я настраивал соединения dbcontext в файле Startup.cs :

services.AddDbContext<FirmDirectoryContext>(options =>  
              options.UseSqlServer(Configuration.GetConnectionString("DefaultDatabase")));

Когда я запускаю это Kestrel, он работает,но если я пытаюсь запустить его с помощью IIS Express, я получаю следующее:

{System.ArgumentNullException: значение не может быть нулевым.Имя параметра: connectionString

Строка подключения, очевидно, задана в файле appsettings.json , иначе Kestrel также потерпит неудачу?

Ответы [ 3 ]

0 голосов
/ 24 января 2019

Я не уверен, как выглядит ваш appsettings.json, но в вашем файле json должен быть раздел:

"ConnectionStrings": {
    "DefaultDatabase": "<Your connection string>"
}
0 голосов
/ 24 января 2019

Похоже, проблема была в моем файле Program.cs . Я скопировал некоторый код из проекта .NET Core 2.1

WebHost.CreateDefaultBuilder(args)
     .UseContentRoot(Directory.GetCurrentDirectory())
     .UseWebRoot(Directory.GetCurrentDirectory() + "\\wwwroot") // THIS LINE FIXES STATIC FILES ON PROD
     .UseIISIntegration()
     .UseStartup<Startup>();

Как только я отредактировал его, чтобы удалить код Directory.GetCurrentDirectory () , он работает.

WebHost.CreateDefaultBuilder(args)
     .UseIISIntegration()
     .UseStartup<Startup>();

Теперь мне нужно проверить сервер, чтобы убедиться, что он все еще работает. Спасибо за ответы.

0 голосов
/ 24 января 2019

Если ваша среда установлена ​​как разработка, dotnet получает строку подключения из appsettings.development.json.

Убедитесь, что вы также установили строку подключения.

...