Не удается установить заголовок ответа HTTP в ASP.NET/IIS7 классический режим
Существует 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");
}
}
1 ответ:
Это невозможно сделать, если вы не используете хотя бы IIS7, интегрированный режим конвейера и .NET 3.0. В документации говорится следующее:
HttpResponse.Свойство Заголовков
Свойство Headers поддерживается только в интегрированном IIS 7.0 конвейерный режим и, по крайней мере, .NET Framework 3.0. Когда ты пытаешься ... доступ к свойству Headers и ни одно из этих двух условий не выполняется встречено, исключение PlatformNotSupportedException брошено.