8

У меня есть следующее в web.config, но после того, как оно опубликовано в IIS 7.5 на сервере, их не удалось найти под IIS -> HTTP Response Headers.Как настроить пользовательские заголовки с помощью web.config?

Я обнаружил, что у web.config на сервере также нет этих записей, но они были там до публикации. Поэтому я могу только сказать, что процесс публикации удалил их, но нет ничего в файлах преобразования web.config, которые их удаляют. Так почему они ушли из опубликованного `web.config '?

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
     <add name="Access-Control-Allow-Methods" value="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" /> 
     </customHeaders> 
    </httpProtocol> 
</system.webServer> 
+1

У вас есть разные конфиги для отладки и версии? –

+0

Согласитесь с Джейсоном, проверьте преобразование web.config. – Nick

ответ

0

Вы уверены, что web.config - лучшее место для этого? Я предпочитаю Custom ActionFilter. Это дает вам возможность выбирать, когда (по каким методам) вы хотите, чтобы логика возникла, а также предлагает гораздо больший контроль (особенно обработка исключений, что делать на разных этапах жизненного цикла Action). Корпорация Майкрософт рекомендует использовать этот подход для вызовов, которые происходят до выполнения Action.

Смотрите эту статью: asp.net http://www.asp.net/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-custom-action-filters

Некоторые примеры кода:

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 
     } 
    } 
Смежные вопросы