次の変更により、カスタムHttpModuleを記述せずに、AzureでこれらのHTTP応答ヘッダーを削除できます。
ネット上のほとんどの情報は古く、UrlScanが関係していRemoveServerHeader=1
ます(IIS7に統合されていますが、オプションは削除されています)。以下は私が見つけた最も近い解決策です(このブログ、この回答、そしてこのブログを組み合わせたおかげで)。
サーバーを削除するには、Global.asaxに移動し、Application_PreSendRequestHeaders
イベントを検索/作成して、以下を追加します(BKとこのブログのおかげで、カッシーニ/ローカル開発でも失敗しません)。
2014年4月編集:ネイティブIISモジュールでPreSendRequestHeadersイベントとPreSendRequestContextイベントを使用できますが、IHttpModuleを実装するマネージモジュールでは使用しないでください。これらのプロパティを設定すると、非同期リクエストで問題が発生する可能性があります。正しいバージョンは、BeginRequestイベントを使用することです。
protected void Application_BeginRequest(object sender, EventArgs e)
{
var application = sender as HttpApplication;
if (application != null && application.Context != null)
{
application.Context.Response.Headers.Remove("Server");
}
}
X-AspNet-Versionを削除するには、web.configで次を検索/作成<system.web>
して追加します。
<system.web>
<httpRuntime enableVersionHeader="false" />
...
X-AspNetMvc-Versionを削除するには、Global.asaxに移動し、Application_Start
イベントを検索/作成して、次のように行を追加します。
protected void Application_Start()
{
MvcHandler.DisableMvcResponseHeader = true;
}
X-Powered-Byを削除するには、web.configで次を検索/作成<system.webServer>
して追加します。
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
...