3

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

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

有什么原因吗?我认为这可能是一个缓存问题(使用 304 Not Modified,您实际上并没有发送内容......),但我已经清除了缓存并确定服务器正在返回 200 OK,这表明它发送了内容.

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

4

3 回答 3

1

这不是与 IIS 7 集成管道有关吗?

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

于 2010-11-05T18:50:30.363 回答
0

也许它与 HttpResponse.BufferOutput 有关。如果关闭了缓冲,那么在这些事件触发时,似乎所有的标头和一些内容都已经发送了。

于 2010-08-14T13:55:49.513 回答
0

我在PreSendRequestHeaders事件上注入了一个 cookie 标头,但还没有遇到它没有触发的问题...

于 2009-04-24T22:19:38.563 回答