我正在尝试调试one specific issue with ASP.NET application,我想问题可能出现在服务器配置中。
具体而言,标准ASP.NET标头将发送到客户端,而不是由ASP.NET应用程序
制作的标头Date: Fri, 04 Feb 2011 12:15:04 GMT
Server: Microsoft-IIS/5.1
X-Powered-By: ASP.NET
我的问题是 - 这个标题来自哪里?谁负责生产并将其发送给客户?为什么会被发送到客户端而不是应用程序制作的那个?
答案 0 :(得分:3)
这是Custom HTTP Header,是网站IIS设置的一部分;
自定义HTTP标头
您可以使用此属性发送 来自Web服务器的自定义HTTP标头 到客户端浏览器。自定义标题 可用于发送指令 Web服务器到客户端浏览器 尚未得到支持的 当前的HTTP规范,例如 IIS可能没有的新HTTP标头 在当时的固有支持 产品发布。例如,你 可以使用自定义HTTP标头来允许 客户端浏览器缓存页面 但阻止代理服务器缓存 页面。
X-Powered-By:除非你删除它,否则ASP.NET默认存在。我假设它在发送响应之前作为HTTP响应管道的一部分添加。
答案 1 :(得分:2)
检查应用程序的IIS网站标题设置。你可以在那里删除它。
编辑: 根据您对问题的编辑,如果您想要以编程方式删除X-Powered-By HTTP标头,则可以在IIS 7上使用集成管道。见http://www.4guysfromrolla.com/articles/120209-1.aspx。请参阅文章中的此部分:
删除服务器HTTP标头 服务器标头会自动添加 到IIS的传出响应。至 从IIS 6或IIS 7中删除此标头 你可以使用微软免费的UrlScan 效用。如果您使用的是IIS 7 综合管道,你可以 或者删除Server标头 以编程方式通过HTTP 模块。 Stefan Grobner的博客文章, IIS 7 - 如何发送自定义“服务器” HTTP标头,显示修改的代码 服务器标头。简而言之,你 需要创建一个HTTP模块 为。创建一个事件处理程序 PreSendRequestHeaders事件。在那里面 事件处理程序你写的代码类似 以下删除服务器 头:
HttpContext.Current.Response.Headers.Remove( “服务器”); Howard von Rooijen有类似的,更多 深入考虑删除 服务器HTTP标头(和其他 通过HTTP识别标题 使用IIS 7及其时的模块 集成管道模式。见隐藏 您的ASP.NET MVC Web应用程序 IIS 7了解更多详情。
答案 2 :(得分:1)
它来自IIS。您可以在HTTP响应标题部分中看到它。
答案 3 :(得分:1)
IIS负责此事。你可以在这里删除它
此post说明了IIS 6和更新版本中的更改位置。上述