【发布时间】:2011-09-14 22:38:42
【问题描述】:
当 WCF REST 服务启用缓存时,底层代码(当然)不会在后续调用同一 URI 时运行。但是,我想知道是否有一种方法可以连接到缓存提供程序以查看请求的传入然后记录它。这将用于分析目的或跟踪 API 使用情况。
【问题讨论】:
标签: .net wcf caching rest .net-4.0
当 WCF REST 服务启用缓存时,底层代码(当然)不会在后续调用同一 URI 时运行。但是,我想知道是否有一种方法可以连接到缓存提供程序以查看请求的传入然后记录它。这将用于分析目的或跟踪 API 使用情况。
【问题讨论】:
标签: .net wcf caching rest .net-4.0
WCF REST 缓存由注册以处理 HttpApplication.ResolveRequestCache 和 HttpApplication.UpdateRequestCache 事件的 ASP.NET 缓存模块完成。您只需要在ResolveRequestCache 之前处理事件(最合适的是BeginRequest)并直接在HttpContext.Current.Request 中访问请求(您可以使用InputStream 属性读取纯HTTP 请求)。这些事件通常在 Global.asax 文件中处理。
请注意,缓存可以发生在多个级别 - 客户端可以在自己的缓存中拥有数据,代理服务器可以缓存数据等,因此不一定所有使用缓存响应的请求都会到达您的服务器。您可以通过在缓存配置文件中设置Location 来控制数据的缓存位置。
【讨论】: