2009-04-23 9 views
1

なぜ簡単な出力キャッシュが動作しないのか、このような状況をデバッグする方法がわからないのか分かりません。ASP.NetでOutputCacheをデバッグする

、私は次のコードを使用するだけの例と私が働いている以前のプロジェクトを見てから:

<%@ OutputCache Duration="100" VaryByParam="id" %> 

をしかし、それは動作しませんでしたので、私が試したVaryByParam =「*」とVaryByParam =「none」に

これらはいずれも機能しませんでした。

OutputCacheに干渉していないことを確認するクイックチェックはありますか?

答えて

2

OutputCacheが正しく動作しているかどうかを確認しようとしている場合は、現在の日時にバインドするだけのラベルをページに追加できます。最初にロードすると、ラベルがバインドされたときのタイムスタンプが表示されます。

次回にラベルが更新されるのは、キャッシュの有効期限が切れ、ページが再びヒットした後です。

<%@ OutputCache duration="120" varybyparam="None" varybycustom="Browser" %> 


<asp:Label ID="Testlabel" runat="server" Text=""><%= DateTime.Now %></asp:Label> 
0

あなたは100秒間だけキャッシュしていますが、より長い値を試しましたか? Visual Studioでデバッガを起動するには100秒以上かかることがあります。また、VaryByParamなしで試してみましたか?

+5

デバッガの起動に100秒かかる場合は...新しいマシンを購入する時間です! ;) – womp

+0

デバッガが問題ではないと思ってはいけません...(コードに触れることなく)数回リフレッシュするので、最初にキャッシュしなかった場合は、次のコードをキャッシュしてください。 – TimLeung

0

これは、いくつかの修正を加えたwompsの回答に似ています。

OutputCacheが正常に動作しているかどうかを確認しようとしている場合は、常に現在の日時を含めることができます。最初にロードすると、ラベルがバインドされたときのタイムスタンプが表示されます。換言すれば、キャッシュはプライムされている。ページをリロードすると、日付は出力がキャッシュされるのと同じになるはずです。キャッシュが期限切れになると、日付時間が再び更新され、サイクルが繰り返されます。

<%@ OutputCache duration="120" varybyparam="None" %> 
<%= DateTime.Now %> 
関連する問題