我正在我们的托管环境中设置一个新的网络服务器。这是一个只能由我们使用的新虚拟机,所以我可以用它做我想做的事(在合理的范围内)。它在 Windows 2008 R2 上运行 IIS 7,系统上安装了 ASP.Net 4.0。
我很想强制服务器上的所有站点使用以下system.webServer
设置,除非它们被明确覆盖,但是将它们添加到框架配置文件夹(32 位和 64 位版本)中的Machine.config
或Web.config
文件中不会t似乎有任何效果。
我试图强制的设置如下。我知道这些设置在单个站点中工作正常Web.config
(因为我已经从我自己配置的生产站点复制/粘贴它们)并且我知道肯定安装了IIS URL 重写模块 2 。
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By"/>
</customHeaders>
</httpProtocol>
<staticContent>
<remove fileExtension=".air"/>
<remove fileExtension=".svg"/>
<remove fileExtension=".ttf"/>
<remove fileExtension=".otf"/>
<remove fileExtension=".woff"/>
<remove fileExtension=".eot"/>
<mimeMap fileExtension=".air" mimeType="application/vnd.adobe.air-application-installer-package+zip"/>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
<mimeMap fileExtension=".ttf" mimeType="application/x-font-truetype"/>
<mimeMap fileExtension=".otf" mimeType="application/x-font-opentype"/>
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject"/>
</staticContent>
<rewrite>
<outboundRules>
<rule name="Remove RESPONSE_Server">
<match serverVariable="RESPONSE_Server" pattern=".+"/>
<action type="Rewrite" value=""/>
</rule>
</outboundRules>
</rewrite>
</system.webServer>
这些设置应该意味着X-Powered-By:
HTTP 标头不存在并且Server:
标头为空,但是当我对此进行测试时,我得到以下信息:
[12:35:56] owen@plum:~$ curl -I http://new.server.ip
HTTP/1.1 200 OK
Content-Length: 689
Content-Type: text/html
Last-Modified: Mon, 13 May 2013 15:11:24 GMT
Accept-Ranges: bytes
ETag: "2ce2122ec4fce1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 14 May 2013 11:36:16 GMT
我错过了一些明显的东西吗?只是system.webServer
无法从这些默认配置文件中继承该部分吗?