正如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中运行?
答案 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)