添加双httpHeaders

我想在我的回复中添加httpHeader

我想用这个代码:

private void AddCustomHeader() { if (string.IsNullOrEmpty(HttpContext.Response.Headers.Get("Access-Control-Allow-Origin"))) { // Custom header HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*"); } } 

但是当使用VS_server运行时,它将始终在localhost上失败

 This operation requires IIS integrated pipeline mode. 

如果我添加已存在的标题会发生什么?

 HttpContext.Response.AddHeader("name","value"); 

我会说(总结评论),你应该尝试使用:

  HttpContext.Current.Response.Headers.Set("Access-Control-Allow-Origin", "*"); 

  1. 它将替换相应标头的任何现有值
  2. Response.AddHeader就是为了保持与以前版本的兼容性

关于您获得的exception,您应该尝试打开您的Web项目属性,“Web”=>选中“使用本地IIS Web服务器”(而不是“使用VS开发服务器”)。

根据您的配置,您可能需要选中“使用IIS Express”

此外,这应该是自定义标头https://stackoverflow.com/a/15043027/1236044的一些帮助

关于此操作需要IIS集成管道模式错误:

  1. 在IIS管理器中选择应用程序池
  2. 点击“基本设置…”
  3. 确保在对话框中为“托管管道模式”选择“集成”模式

来源 。

关于你的第二个问题(如果你添加一个已经存在的标题会发生什么),它只会添加另一个具有相同名称的值:

 HttpContext.Response.AddHeader("name", "value1"); HttpContext.Response.AddHeader("name", "value2"); 

将导致带有name和值value1, value2的标头(在ASP.NET 4.5,IIS Express中尝试过,但我怀疑这很重要。)