【问题标题】:Is it possible to hook into the WCF cache provider?是否可以连接到 WCF 缓存提供程序?
【发布时间】:2011-09-14 22:38:42
【问题描述】:

当 WCF REST 服务启用缓存时,底层代码(当然)不会在后续调用同一 URI 时运行。但是,我想知道是否有一种方法可以连接到缓存提供程序以查看请求的传入然后记录它。这将用于分析目的或跟踪 API 使用情况。

【问题讨论】:

    标签: .net wcf caching rest .net-4.0


    【解决方案1】:

    WCF REST 缓存由注册以处理 HttpApplication.ResolveRequestCacheHttpApplication.UpdateRequestCache 事件的 ASP.NET 缓存模块完成。您只需要在ResolveRequestCache 之前处理事件(最合适的是BeginRequest)并直接在HttpContext.Current.Request 中访问请求(您可以使用InputStream 属性读取纯HTTP 请求)。这些事件通常在 Global.asax 文件中处理。

    请注意,缓存可以发生在多个级别 - 客户端可以在自己的缓存中拥有数据,代理服务器可以缓存数据等,因此不一定所有使用缓存响应的请求都会到达您的服务器。您可以通过在缓存配置文件中设置Location 来控制数据的缓存位置。

    【讨论】:

    • 有道理。我不确定缓存查找是否发生在 HttpApplication` 类中的任何事件之前。现在我明白了。我会试试看。如果内容被缓存在服务器的上游,那很好,但这将允许我们捕获到达服务器的所有内容。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2017-08-07
    • 2016-08-02
    • 2021-02-20
    相关资源
    最近更新 更多