8

Tôi có những điều sau đây trong web.config, nhưng sau khi nó được xuất bản lên IIS 7.5 trên máy chủ, chúng không thể tìm thấy dưới IIS -> HTTP Response Headers.Làm cách nào để đặt tiêu đề tùy chỉnh bằng web.config?

Điều tôi thấy là web.config trên máy chủ không có các mục nhập đó, nhưng chúng đã có trước khi xuất bản. Vì vậy, tôi chỉ có thể nói quá trình xuất bản đã loại bỏ chúng ra, nhưng không có gì trong các tệp biến đổi web.config loại bỏ chúng. Vậy tại sao chúng lại xuất phát từ 'web.config' đã được xuất bản?

<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

Bạn có configs khác nhau cho Debug và phát hành? –

+0

Đồng ý với Jason, hãy kiểm tra các biến đổi web.config của bạn. – Nick

Trả lời

0

Bạn có chắc chắn rằng web.config là nơi tốt nhất cho việc này? Tôi có xu hướng thích Custom ActionFilter's. Điều này cho bạn cơ hội để chọn và chọn khi nào (trên phương pháp nào) bạn muốn logic xảy ra và cũng cung cấp khả năng kiểm soát nhiều hơn (đặc biệt là xử lý ngoại lệ, phải làm gì ở các giai đoạn khác nhau của vòng đời Hành động). Microsoft khuyên bạn nên sử dụng phương pháp này cho các lời gọi xảy ra trước khi thực thi Hành động.

Xem bài viết asp.net này: http://www.asp.net/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-custom-action-filters

Một số mã ví dụ:

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 
     } 
    } 
Các vấn đề liên quan