【发布时间】:2013-05-24 05:19:12
【问题描述】:
我有一个自定义 IHttpModule 用于记录所有 HTTP 请求和响应,目前运行良好,但我很想扩展它,以便确定响应实际需要多长时间。
响应记录在 HttpApplication.EndRequest 事件中,但此事件在请求实际发送到 Web 客户端之前触发。虽然这使我可以确定服务器处理响应所需的时间,但我也希望能够计算客户端实际接收响应所需的时间。
是否有事件或其他机制允许我在客户端完成接收响应后进行拦截?
【问题讨论】:
-
简而言之……不。服务器无法看到客户端何时收到数据,您必须使用 javascript 回调服务器。它们是这方面的许多示例框架,包括开源的和商业的。尝试集成 Glimpse
-
对于我最感兴趣的日志记录应用程序,我无法控制客户端,这些客户端通过 HTTP 进行 SOAP 调用。所以听起来你的方法不适合我的需要。还是谢谢。
-
最好你能算出最后一个字节离开服务器的时间,但这与 IIS 日志基本相同,可能需要 ISAPI 过滤器
-
是的,这对我想要实现的目标并没有太大帮助,但无论如何再次感谢您的投入。我想我希望将响应流式传输到客户端的调用是同步的,并且我能够跨越它的任何一侧,这样我就可以计算实际的响应时间,而不是服务器处理的时间回应。
-
当客户端收到所有字节后,服务器就开始了。因为服务器必须缓冲它。
标签: asp.net .net-4.0 asp.net-4.0 ihttpmodule