Недавно я написал базовый внутренний проект asp. net, и при развертывании его на моем сервере ubuntu16.04 я получаю сообщение об ошибке «DbContext null»:
monodev@biovrserver:/home/servers/biovr.back.v2/source/BioVR.WebHosting/bin/Release/netcoreapp2.2/publish$ dotnet BioVR.WebHosting.dll
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at BioVR.WebHosting.Services.DataSeeder.SeedData(DataContext context) in G:\BioVR\BioVRBackend2019\BioVR.Backend\BioVR.WebHosting\Services\DataSeeder.cs:line 15
at BioVR.WebHosting.Program.Main(String[] args) in G:\BioVR\BioVRBackend2019\BioVR.Backend\BioVR.WebHosting\Program.cs:line 33
Aborted (core dumped)
DataSeeder
будет добавить некоторые исходные данные в базу данных, если их нет. Я использую ms sql, и он запускается в docker.
public static void SeedData(DataContext context)
{
School newSchool = context.Set<School>().FirstOrDefault();
if (newSchool is null)
{
Если я комментирую код заполнения, ошибка снова появляется в любое время при запросе базы данных.
вот мой app. json:
"AppSettings": {
"AppName": "XXXXXXXXXXXXXX",
"DbConnString": "xxxxxxxxxxxxxxxxxxxxxxx",
"Jwt": {
"Key": "xxxxxxxxxxxxxxxxxxxx",
"Issuer": "xxxxxxxxxxxxxxxxxxxxxxxx"
}
},
Я уверен, что строка подключения верна, потому что коды работают нормально в папке проекта dev командой dotnet run
; однако каждый раз после публикации sh по dotnet build --runtime ubuntu.16.04-x64
, затем dotnet myproj.dll
возникает ошибка.
Я много гуглил, но не дал четкого ответа на эту ситуацию ... кто-нибудь знает это? спасибо