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

你有調試和發佈不同CONFIGS? – 2015-07-06 19:59:37

+0

與Jason同意,檢查你的web.config變換。 – Nick 2015-11-11 22:14:38

回答

0

你確定web.config是最好的地方嗎?我傾向於選擇自定義ActionFilter。這爲您提供了機會來選擇何時(在哪些方法上)您希望發生邏輯,並提供更多的控制(特別是異常處理,在Action生命週期的各個階段執行什麼操作)。 Microsoft建議在執行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 
     } 
    } 
相關問題