HTTP模块中的响应修改

| 我在C#中构建了一个http模块,该模块仅覆盖生命周期的EndRequest,检查响应标头的状态代码,并在需要时修改响应代码。就像是:
HttpContext context = ((HttpApplication)source).Context;
if (context.Response.StatusCode == 200)
{
    context.Response.StatusCode = 404;
}
当我针对localhost(真实的IIS)进行测试时,这对我来说似乎很好,但是当我启用Intranet访问并从另一台计算机进行测试时,它每次都会失败。 通过另一台计算机进行测试时看到的错误是: \“发送HTTP标头后,服务器无法设置状态。” 我还注意到,该请求两次请求相同的文件,而本地仅请求一次该文件。我听到有人说过有关输出缓冲的内容,但我也尝试将on BeginRequest响应OutputBuffer设置为true并得到相同的结果。 有什么想法吗?     
已邀请:
        您需要在发送标头之前修改响应。我从来没有这样做,但是我猜正确的事件是
PreSendRequestHeaders
。链接 这是在此事件中设置标题的示例。 如果此事件对您不起作用,请在处理程序的后期处理之后在管道中检出一些事件:http://blogs.msdn.com/b/carloc/archive/2007/12/19/application -page-and-control-lifecycle.aspx但是请小心,因为您可能必须为IIS 7集成管道重写代码。     

要回复问题请先登录注册