Ray*_*eng 10 iis-7.5 windows-server-2008-r2 asp.net-mvc-4 visual-studio-2012
我在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>
Run Code Online (Sandbox Code Playgroud)
您确定 web.config 是执行此操作的最佳位置吗?我更喜欢自定义 ActionFilter。这使您有机会选择希望逻辑发生的时间(在什么方法上),并且还提供更多的控制(特别是异常处理,在 Action 生命周期的各个阶段做什么)。
Microsoft建议对 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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16352 次 |
| 最近记录: |