Как правильно обнаружить сетевые ошибки SQL Server в C#?C#

Место общения программистов C#
Ответить
Anonymous
 Как правильно обнаружить сетевые ошибки SQL Server в C#?

Сообщение Anonymous »

Я хочу перехватывать все сетевые исключения SQL Server (потеря соединения, тайм-аут и т. д.) и показывать конечному пользователю диалоговое окно с предупреждением, когда экземпляр SQL Server внезапно выходит из строя.
SqlException содержит список ошибок, который должен показать мне точную ошибку.
https://learn.microsoft.com/en-us/dotnet/api/system .data.sqlclient.sqlerror.number?view=netframework-4.8.1
Однако, согласно моим тестам, всякий раз, когда я останавливаю службу SQL Server, единственное свойство в этой коллекции содержит SqlError Свойству .Number присвоено значение "-1".

Код: Выделить всё

if (ex is SqlException sqlException)
{
int number = ex.Number; // -1
}
В сообщении об ошибке говорится

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. . Сервер не найден или недоступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 – ошибка определения сервера/экземпляра)

Итак, мои вопросы
  • Можно ли предположить, что если коллекция SqlError содержит только запись с номером «-1», то это проблема, связанная с сетью?
  • Если нет, то как я могу получить эту конкретную информацию «поставщик: сетевые интерфейсы SQL, ошибка: 26 — ошибка определения сервера/экземпляра» из объекта SqlException?
  • Если я попытаюсь получить это число «26» путем анализа сообщения об ошибке, это будет подвержено ошибкам, верно? Я предполагаю, что эти сообщения об ошибках могут быть локализованы на другие языки в зависимости от настроек системы.
  • Существует ли документация обо всех возможных проблемах, связанных с потерей соединения с экземпляром SQL Server, и соответствующие рекомендации как это обнаружить в C#?
Я пытался найти документацию по этим проблемам, но не смог найти никакой полезной ссылки на эту тему.
Изображение

Изображение


Подробнее здесь: https://stackoverflow.com/questions/790 ... -correctly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»