我正在使用带有 IIS6 的 VS 2008。我想从 Http 标头“服务器”中删除服务器标记。我在 Global.asax 中使用了以下代码。
void Application_PreSendRequestHeaders(object src, EventArgs e)
{
HttpContext.Current.Response.Headers.Remove("Server");
}
它显示错误“对象引用未设置为对象的实例”。我该如何解决这个问题
我正在使用带有 IIS6 的 VS 2008。我想从 Http 标头“服务器”中删除服务器标记。我在 Global.asax 中使用了以下代码。
void Application_PreSendRequestHeaders(object src, EventArgs e)
{
HttpContext.Current.Response.Headers.Remove("Server");
}
它显示错误“对象引用未设置为对象的实例”。我该如何解决这个问题
以下是对我有用的步骤(对于 IIS6):
仅作记录......如果您升级到 IIS 7(集成管道模式),您可以使用自定义 HttpModule 的代码来实现这一点。
祝你好运!
看看这里的答案: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");
}
}
}