2011-06-14 43 views
2

當WCF REST服務已啓用高速緩存,底層代碼(當然)未在後續調用相同的URI上運行。但是,我想知道是否有辦法掛鉤緩存提供程序來查看請求,然後將其記錄下來。這將用於分析目的或跟蹤API使用情況。是否有可能掛鉤到WCF緩存提供程序?

回答

3

WCF REST緩存是由ASP.NET緩存模塊完成的,緩存模塊註冊處理HttpApplication.ResolveRequestCacheHttpApplication.UpdateRequestCache事件。你只需要處理事件之前ResolveRequestCache(最合適的是BeginRequest),並直接在HttpContext.Current.Request訪問請求(可以使用InputStream屬性來讀取純HTTP請求)。這些事件通常在Global.asax文件中處理。

注意,高速緩存可以發生在多個層次上 - 客戶端可以在自己的緩存有數據,代理服務器可以緩存數據等,所以不一定在使用緩存的響應會打你的服務器的所有請求。您可以通過在緩存配置文件中設置Location來控制數據緩存的位置。

+0

有道理。我不確定緩存查找是否發生在HttpApplication類中的任何事件之前。現在我明白了。我會試一試。如果內容緩存在服務器的上游,那麼很好,但是這樣可以讓我們捕獲到達服務器的所有內容。謝謝。 – 2011-06-14 21:04:24

相關問題