Я использую этот фильтр, чтобы войти в HttpRequestValidationException Elmah:Elmah не сохраняет имя пользователя в HttpRequestValidationException
public class ElmahRequestValidationErrorFilter : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
if (context.Exception is HttpRequestValidationException)
Elmah.ErrorSignal.FromCurrentContext().Raise(context.Exception.InnerException);
}
}
и я зарегистрировал этот фильтр в FilterConfig.cs:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new ElmahRequestValidationErrorFilter());
filters.Add(new HandleErrorAttribute());
}
}
Но когда эта ошибка , UserName пользователя, прошедшего проверку подлинности, не сохраняется в журналах elmah на столбце пользователя. Но в других ошибках это работает с ошибкой. Как я могу исправить эту проблему?
Является ли ошибка регистрируемой вообще? Я просто попытался воссоздать вашу настройку, но в моем случае имя пользователя успешно зарегистрировано. – ThomasArdal
Также имейте в виду, что ELMAH не поддерживает повышение нуля в качестве исключения. Это означает, что если InnerException имеет значение NULL, ваш фильтр сам выдаст исключение, и исходная ошибка никогда не будет регистрироваться в вашем журнале ELMAH. – ThomasArdal
Я попытался использовать context.Exception, но опять же не поднять имя пользователя ... – BlackViking