У меня есть проект ASPAPAPI. Я пытаюсь настроить глобальный обработчик исключений на моем базовом контролере. Поэтому я создал ExceptionFilterAttribute
так.
using System.Web.Http.Filters;
public class MyExceptionFilterAttribute : ExceptionFilterAttribute
{
protected static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public override void OnException(HttpActionExecutedContext actionExecutedContext)
{
var exception = actionExecutedContext.Exception;
log.Fatal(exception);
base.OnException(actionExecutedContext);
}
}
Затем я также зарегистрировал его в /App_Start/WebApiConfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// ...
// Setup Filters
config.Filters.Add(new MyExceptionFilterAttribute());
}
}
Когда я добавляю атрибуты к моему контроллеру (или базовому контроллеру), ничего не регистрируется. Что я делаю неправильно?
Изменить: мой контроллер бросает исключение:
[HttpGet]
public string Hello(string name)
{
if (name.Equals("error", StringComparison.OrdinalIgnoreCase))
{
throw new HttpResponseException(HttpStatusCode.InternalServerError);
}
else
{
return name;
}
}