使用HTTP模块时,是否有人注意到管道中的最后两个事件 - PreSendRequestHeaders和PreSendRequestContent - 并不总是运行?
我已经验证绑定到EndRequest的代码将运行,但是在绑定到PreSendRequestHeaders或PreSendRequestContent时不会。
有原因吗?我想也许这是一个缓存问题(304 Not Modified,你实际上并不发送内容......),但是我已经清除了缓存并确定服务器返回200 OK,这表明它发送了内容
这是一个问题,因为响应的StatusCode默认为200,我的理解是,在这两个最终方法之前,它不会更新为404或206。如果我在EndRequest期间检查StatusCode,它将始终读取200。
答案 0 :(得分:1)
这与IIS 7集成管道有关吗?
要进行验证,但我认为仅当IIS 7在集成管道中运行时才会触发事件。
答案 1 :(得分:0)
我正在 PreSendRequestHeaders 事件中注入一个Cookie标头,并且尚未遇到一个没有触发的问题......
答案 2 :(得分:0)
可能与HttpResponse.BufferOutput有关。如果关闭缓冲,似乎所有标题和一些内容都会在这些事件触发时发送。