无法在ASP.NET/IIS7经典模式下设置HTTP响应标头

Gho*_*ngi 4 asp.net iis-7 httpmodule

有一个HttpModule可以更改响应标头中的服务器字段.但它在ASP.NET/IIS7经典模式下不起作用.在reponse标题中删除或更改服务器字段的解决方案是什么?

public class CloakHttpHeaderModule : IHttpModule
{
    public void Init(HttpApplication app)
    {
        app.PreSendRequestHeaders += new EventHandler(context_PreSendRequestHeaders);
    }

    public void Dispose()
    {
    }

    private void context_PreSendRequestHeaders(object sender, EventArgs e)
    {
        var context = ((HttpApplication)sender).Context;
        context.Response.Headers.Set("Server", "Apache 2.0");
        //HttpContext.Current.Response.Headers.Set("Server", "WSGIServer/0.1 Python/2.6.1");
    }

}
Run Code Online (Sandbox Code Playgroud)

Kev*_*Kev 6

除非您至少运行IIS7,集成管道模式和.NET 3.0,否则无法执行此操作.文档说明了这一点:

HttpResponse.Headers Property

Headers属性仅受IIS 7.0集成管道模式和至少.NET Framework 3.0支持.当您尝试访问Headers属性并且不满足这两个条件之一时,将抛出PlatformNotSupportedException.