1

IIS6 で VS 2008 を使用しています。HTTPヘッダー「サーバー」からサーバータグを削除したい。Global.asax で次のコードを使用しました。

void Application_PreSendRequestHeaders(object src, EventArgs e)
{
        HttpContext.Current.Response.Headers.Remove("Server");
}

「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。どうすればこれを解決できますか

4

2 に答える 2

1

私のために働いた手順は次のとおりです(IIS6の場合):

  1. UrlScan 2.5を Web サーバーにダウンロードしてインストールします。
  2. UrlScan 構成ファイル (%windir%\system32\inetsrv\urlscan\urlscan.ini) を開きます。
  3. RemoveServerHeader 行を見つけて、値を 1 に設定します (RemoveServerHeader=1 を読み取る必要があります)。
  4. IIS をリセットし、ヘッダーがなくなっているかどうかをテストします

記録のために... IIS 7 (統合パイプライン モード) にアップグレードすると、カスタム HttpModule を使用してコードでこれを実現できます。

幸運を!

于 2012-08-12T10:58:29.523 に答える
-1

こちらの回答をご覧ください: https://stackoverflow.com/a/12804722/2074016。エラーを修正できる追加のエラー処理があります。

protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    // Remove the "Server" HTTP Header from response
    HttpApplication app = sender as HttpApplication;
    if (null != app && null != app.Request && !app.Request.IsLocal &&
        null != app.Context && null != app.Context.Response)
    {
        NameValueCollection headers = app.Context.Response.Headers;
        if (null != headers)
        {
            headers.Remove("Server");
        }
    }
}
于 2013-04-17T16:35:07.227 に答える