У меня есть служба приложений в Azure, работающая как API для разрабатываемой мной системы. Поскольку API отвечает за прямой доступ к базе данных, я, очевидно, не хочу хранить строки подключения в исходном коде, поэтому сохранил их в разделе «Строки подключения» в конфигурации службы приложений на панели управления Azure.
Мой код в значительной степени является точной копией этого >> https://github.com/medhatelmasry/JwtAuthentication/blob/master/JwtAuthentication/Startup.cs, за исключением того, что у меня есть проверка текущей конфигурации, в которой он запущен (отладка, выпуск и т. д.), так что когда я отлаживаю локально в Visual Studio Я использую соединение localdb (жестко запрограммировано). У меня есть файл appsettings.json, но в нем нет строк подключения, только настройки для аутентификации и ведения журнала JWT.
Когда это вызывается:
services.AddDbContext<ApplicationDbContext>(
option => option.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
В Azure я получаю следующее:
Unhandled Exception: System.ArgumentNullException: Value cannot be null
Parameter name: connectionString
Я работал глупые часы за последнюю неделю, пытаясь заставить это работать, и ходил по кругу, я доводил себя до безумия. Результаты Google и StackOverflow были неоднозначными, поскольку на протяжении многих лет были разные ответы из разных версий Azure и ASP.NET Core. Как будто он вообще не может получить доступ к конфигурации Azure. Пожалуйста, обратитесь к ссылке выше, так как это та же настройка, что и у меня, и было много разных ответов, основанных на версиях и типах .NET (ядро или фреймворк).
Изменить: прочтите мой вопрос, строка подключения не хранится в файле проекта appsettings.json, она хранится в Azure, как показано ниже (я вычеркнул имена строк подключения, но они соответствуют тому, что находится в коде, и нет. не "DefaultConnection"):
{ "ConnectionStrings": { "DefaultConnection": "DB Connection String here" } }
, как выглядит ваш файл настроек? - person juunas   schedule 22.08.2019