IIS 10.0 将不允许的 headers 添加到 API 调用的响应中

IIS 10.0 adding disallowed headers to responses on API calls

我有一个 IIS 10.0 服务器,我看到一些不允许的 headers [Pragma, Expires] 仍在添加,但它们只被添加到 API 端点,而不是当检索到静态内容时。这些 headers 没有在代码中设置。我遵循了 recommended approach to remove the headers from IIS(将删除元素添加到 configuration\system.webServer\httpProtocol\customHeaders),并且在调试时,我在获取之前没有在 HTTP 响应中看到这些 headers发回给调用者。我想从响应中删除这些 headers,但不知道如何确定它们的设置位置。有什么指点吗?

扩展上面的评论。

解决此类问题的关键是了解此类 headers 的来源,因此启用 Failed Request Tracing 是最快的方法。

如果你发现headers(如ASP.NET等)是由IIS默认模块设置的,你就知道应该参考IIS文档找到设置并打开它们关闭。

对于您的情况,FRT 显示 headers 来自第三方模块,因此您需要检查供应商在文档中提供的设置。

请注意,即使找不到供应商设置来关闭它们,您仍然可以通过多种方式删除它们,例如在 URL 重写出站规则中删除此类 headers。