Как правильно запустить основное приложение ASP.NET, когда не удается установить соединение SQL - PullRequest
1 голос
/ 18 июня 2019

У меня есть сервер ASP.NEt core 2.1, который запускается по требованию. Поэтому, когда кто-то заходит на веб-страницу. Мой SQL-сервер находится в другом месте, чем веб-сервер, и есть случаи, когда SQL-сервер не работает и работает. Поэтому мне нужно было бы изящно запустить веб-сервер без SQL-сервера. Но так, что он, конечно, сначала пытается подключиться к серверу SQL.

Это работало как-то в ASP.NET Core 1.1, но теперь с 2.1 я получаю исключение InvalidOperationException: для этого DbContext не настроен поставщик базы данных.

Я использую динамическую строку подключения и у меня есть функция, которая либо возвращает строку подключения, либо другой информации (например, если сбой был обнаружен ранее).

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        string connectionString = getConnectionString();
        try
        {
            base.OnConfiguring(optionsBuilder);
            if (connectionString != "failure")
            {
                optionsBuilder
                    .EnableSensitiveDataLogging(true)
                    .ReplaceService<IMigrationsAnnotationProvider, CustomAnnotationProvider>()
                    .UseSqlServer(connectionString);
            }
            else
            {
                optionsBuilder
                    .EnableSensitiveDataLogging(true)
                    .ReplaceService<IMigrationsAnnotationProvider, CustomAnnotationProvider>();
            }
        }
        catch (Exception ex)
        {
            setConnectionStatus(CONNECTION_STATUS_FAILURE, ex.Message);
            return;
        }
    }
}

Итак, что мне нужно сделать в этом методе OnConfiguring, если я знаю, что соединение не будет установлено или я могу что-то сделать в обработчике исключений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...