Я работаю на довольно большом веб-сайте. В настоящее время у нас есть 4 веб-сервера и активный пассивный кластер БД, работающий на ASP.NET 2.0 с C #. В настоящее время наша обработка исключений не перехватывает правильное генерируемое исключение. Я слышал, это потому, что Server.GetLastError()
не является поточно-ориентированным ( примечание : в настоящее время мы не используем Server.GetLastError().GetBaseException()
, что может быть причиной того, что мы не получаем правильную ошибку ).
Мы запускаем проект для отлова точных исключений, чтобы мы могли увидеть основную причину ошибки, и я пытаюсь найти лучший способ сделать это.
Наши опции:
- Просмотрите все наши классы / методы (сотни, если не тысячи), чтобы добавить блоки try / catch / finally, чтобы перехватить правильное исключение.
- Найдите способ правильно обработать исключения в global.asax.
Итак, я думаю, мои вопросы:
- Является ли
Server.GetLastError()
потокобезопасным?
- Если два исключения генерируются одновременно, будут ли регистрироваться оба?
- Есть ли лучший способ справиться с этим, чем я перечислил?