我在web.config中有以下内容,但在服务器上发布到IIS 7.5之后,无法在IIS -> HTTP Response Headers
下找到它们。
我发现服务器上的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>
答案 0 :(得分:0)
您确定web.config是最佳选择吗?我倾向于选择Custom ActionFilter。这使您有机会选择何时(在什么方法上)您希望逻辑发生,并提供更多控制(特别是异常处理,在Action生命周期的各个阶段做什么)。
Microsoft recommends使用此方法进行Action执行之前发生的调用。
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
}
}