Как получить сведения об исключениях, специфичных для пользователя, в случае многопользовательской системы?
Предположим,что в приложении одновременно несколько пользователей находятся в сети. И по какой-то причине 4 пользователя получили исключения. Поскольку у нас есть глобальная обработка исключений, реализованная в нашем файле Global.asax, мы показываем пользовательскую страницу ошибок всем пользователям и регистрируем ошибку, используя приведенный ниже код:
var currentException = Server.GetLastError(); logger.LogDetails(currentException); // some logging code Server.ClearError();
Пользователь 1 получил исключение Divide by zero.
Пользователь 2 получил недопустимый литой исключение.
Пользователь 3 получил исключение Index out of range.
Пользователь 4 получил некоторое Sqlexception.
Что будет с этим сервером.GetLastError () return в этом случае?
Кроме того, мне нужно регистрировать исключения. Так что думайте об этом так: я хочу регистрировать исключение на основе пользователя в качестве ключа и деталей исключения в качестве описания. Таким образом, для пользователя 1 будет запись в журнале примерно такая: User=U1, ExceptionDescription="Divide By zero".
Я могу получить текущего пользователя с помощью HTTPContext, но все еще не могу получить исключение, которое произошло в их сеансе. Как я могу этого достичь?
Что я уже пробовал:
Похоже, что "сервер" не является специфичным для пользователя. Поэтому, если мы попытаемся прочитать GetLastError из этого, он вернет все, что произошло в прошлом исключении.