Ответ 1
Вы уверены, что web.config - лучшее место для этого? Я, как правило, предпочитаю Custom ActionFilter's. Это дает вам возможность выбирать, когда (по каким методам) вы хотите, чтобы логика возникла, а также предлагает гораздо больший контроль (особенно обработка исключений, что делать на различных этапах жизненного цикла Action).
Microsoft рекомендует использовать этот подход для вызовов, которые происходят перед выполнением действия.
Пример кода
public class CustomFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//add in your custom headers
filterContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
filterContext.HttpContext.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type");
filterContext.HttpContext.Response.AddHeader("Access-Control-Allow-Methods", "GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS");
base.OnActionExecuting(filterContext);
}
public void OnException(ExceptionContext filterContext)
{
//do some cool exception handling here
}
}