1

Наш ИТ-администратор запрашивает конечную точку API в нашем веб-приложении для проверки работоспособности. Логика в API должна выполнять любой простой запрос к базе данных, чтобы веб-сервер мог подключиться к базе данных. Идея состоит в том, что сбой этого вызова API может вызвать автоматическое списание веб-сервера и т.д.

Это определенно сработает, но кажется немного самодельным. Есть ли лучший способ использовать готовые инструменты и т.д. для достижения этой цели? Мы находимся в стеке Microsoft, поэтому веб-блоки - это IIS 8, а база данных - SQL 2014.

1 ответ1

1

Вы можете сделать, как вы предлагаете, однако вам нужно будет делать вызов API через определенные промежутки времени. Вы все еще будете иметь нежелательное поведение в течение времени между тем, когда БД выключается и следующий пинг обнаруживает это.

Другое решение - перехватить ошибку в глобальном обработчике. (В ASP.NET вы можете сделать это в файле Global.asax.) Вы можете проверить ошибку и получить достаточно детальную информацию, если хотите, например, выполнить одно действие, если время соединения с БД истекло, или другое действие, если соединение допустимо, но есть ошибка прав доступа. Заметьте, что ошибка соединения с БД приведет к глобальному обработчику только в том случае, если что-то еще не обработает его первым.

Предложение: попытайтесь сделать часть "что вы с этим делаете" отдельным механизмом от метода обнаружения. Таким образом, вы могли бы даже реализовать обе идеи, или третью, и совместно использовать одни и те же действия.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .