为什么removeServerHeader在Azure Web App中工作?

时间:2015-10-09 14:25:41

标签: asp.net azure iis web-config

正如other SO questions中提到的那样,Windows Azure Web应用程序在IIS / 8.0上运行,但我怀疑这是否真的存在。

首先,当我检查来自Azure Web Apps免费层上运行的Web应用程序的HTTP响应时,我可以看到以下HTTP标头:

Server:Microsoft-IIS/8.0

但是,根据this documentation以及我的计算机上的某些本地测试,我知道IIS 8.0中不支持requestFiltering removeServerHeader

e.g:

<configuration>
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
  </system.webServer>
</configuration>

这是feature which has been added with IIS 10.0我可以通过在带有IIS 10.0的Windows 10 VM上运行更多测试来确认这一点。

有趣的是,此设置也适用于我的Azure Web App ,据说可以在IIS 8.0上运行,所以我的问题是Azure Web Apps实际运行的是什么版本的IIS?

编辑: 从下面的所有评论看来,Azure Web Apps似乎在IIS 8.0上运行,所以我重新提出我的问题:如何在IIS 8.0上运行时,removeServerHeader如何在Azure Web App中运行?

3 个答案:

答案 0 :(得分:4)

A blog post from Microsoft in 2013 states

  

我们的客户要求我们允许在Azure网站上禁用这些标头,因此在最新版本的Windows Azure网站中,我们已启用此功能。

然后继续举例说明如何使用removeServerHeader并说明它是请求过滤模块的一部分:

  

请求过滤模块......

便于删除这些标题

有趣的是their documentation for IIS 10 Request Filtering确认{10}已将removeServerHeader属性添加到IIS 10中。

  

IIS 10.0中的新功能

     

IIS 10.0添加了removeServerHeader属性以禁止将HTTP服务器标头发送到远程客户端。

所以我想说它在Azure网站上运行的原因是因为Microsoft在2013年应客户的要求将此功能推送到Azure网站 - 可能是作为Azure特定版本的请求过滤模块的一部分。他们已将其作为标准集成到IIS 10请求过滤模块中。

答案 1 :(得分:2)

各种消息来源显示,Azure网站运行的IIS自定义版本在任何Windows版本上都不可用。

答案 2 :(得分:1)

您的网络作业在与关联网站相同的环境中运行。要获得有关网站及其环境的详细信息,请使用Kudu。您可以通过浏览到URL来访问它:

  

{yoursite} .scm.azurewebsites.net

然后选择顶部的环境标签。

enter image description here