Asp.net 为什么不';PresendRequestHeader和PreSendRequestContent是否一致运行?

Asp.net 为什么不';PresendRequestHeader和PreSendRequestContent是否一致运行?,asp.net,events,httpmodule,pipeline,httpapplication,Asp.net,Events,Httpmodule,Pipeline,Httpapplication,在使用HTTP模块时,是否有人注意到管道中的最后两个事件—PreSendRequestHeaders和PreSendRequestContent—并不总是运行 我已经验证了绑定到EndRequest的代码将运行,但在绑定到PreSendRequestHeaders或PreSendRequestContent时不会运行 有什么原因吗?我认为这可能是一个缓存问题(304未修改,您实际上不发送内容…),但我已清除缓存并确定服务器返回200 OK,这表示它发送了内容 这是一个问题,因为响应的Status

在使用HTTP模块时,是否有人注意到管道中的最后两个事件—PreSendRequestHeaders和PreSendRequestContent—并不总是运行

我已经验证了绑定到EndRequest的代码将运行,但在绑定到PreSendRequestHeaders或PreSendRequestContent时不会运行

有什么原因吗?我认为这可能是一个缓存问题(304未修改,您实际上不发送内容…),但我已清除缓存并确定服务器返回200 OK,这表示它发送了内容


这是一个问题,因为响应的StatusCode默认为200,我的理解是,在这两个最终方法之前,它不会更新为404或206之类的值。如果我在EndRequest期间检查StatusCode,它将始终读取200。

我正在PreSendRequestHeaders事件中注入一个cookie头,但尚未遇到它未触发的问题…

可能与HttpResponse.BufferOutput有关。如果关闭缓冲,则在这些事件触发时,似乎所有标题和部分内容都已发送。

这是否与IIS 7集成管道有关


有待验证,但我认为只有当IIS 7在集成管道中运行时才会触发这些事件。

我认为您是正确的,但我遇到了同样的问题,即使IIS在集成管道模式下运行,也不会触发这些事件。