Как получить переменные сервера (или, по крайней мере, IP-адрес клиента) в C# в событии Elmah ErrorMail_Mailing, когда HttpContext.Current равен нулю?
Я работаю над некоторым кодом обработки ошибок, и я хочу определить, является ли это локальное соединение (разработчик) или нет. Обычно я смотрю на HttpContext.Current.Request.ServerVariables
однако в коде обработки ошибок, если аутентификация истекла HttpContext.Current
нулевой.
когда HttpContext.Current
имеет значение null, как мне получить переменные сервера - или, по крайней мере, IP-адрес клиента, с которого начался запрос, - чтобы я мог определить, является ли разработчик его собственным локальным сервером или нет.
ОБНОВЛЕНИЕ: мне удалось получить соответствующие переменные сервера в параметре ErrorMailEventArgs, переданном elmah, в частности errorMailEventArgs.Error.ServerVariables.
4 ответа
Я смог получить соответствующие переменные сервера в ErrorMailEventArgs
параметр, передаваемый elmah, в частности errorMailEventArgs.Error.ServerVariables
,
Похоже, что это не может быть сделано без запроса - см. Global ASAX - получить имя сервера
Некоторые быстрые рефлекторные грязные работы требуются в System.Web.Hosting.IIS7WorkerRequest::GetServerVariable, который всегда возвращает null, lol.