2017-11-10 17 views
0

OutputCacheについてはわかりません。ここでCacheProfileを使用したASP.NET MVC4 OutputCache

は私のテスト

私はこの場合

[OutputCache(Duration = 3600, VaryByParam = "none", Location = System.Web.UI.OutputCacheLocation.Server)] 
public string hour() 
{ 
     return DateTime.Now.ToString("T"); 
} 

現在の時刻を返す単純なアクションを持っている、それが完璧に動作します。

は今、私はここで

[OutputCache(CacheProfile = "Cache1Hour")] 
public string hour() 
{ 
    return DateTime.Now.ToString("T"); 
} 

更新アクションがあり、ここでweb.configファイルのキャッシュセクション

<caching> 
    <outputCacheSettings> 
    <outputCacheProfiles> 
     <add name="Cache1Hour" duration="3600" varyByParam="none" location="Server"/> 
    </outputCacheProfiles> 
    </outputCacheSettings> 
</caching> 

である。しかし、私がテストしたときに、それは動作しませんcacheProfile を使用します。 私が/ MyController/hour?id = 1と/ MyController/hour?id = 2を呼び出すと、varyByParam = "none"を設定しても2つの異なる結果が得られます。

そして最後に、私は別のテスト

[OutputCache(CacheProfile = "Cache1Hour", VaryByParam ="none")] 
public string hour() 
{ 
    return DateTime.Now.ToString("T"); 
} 

を行い、このような場合のために、それは完璧に動作します。

この意味は? なぜ私のVaryByParmプロパティがweb.configファイルから使用されていないのですか? 誰かが私を説明できますか?

よろしく

アップデート1:ここ は、持続時間が60(= 1分)に設定されているあなたのweb.configファイルの画像で私のweb.config web.config

+0

設定の詳細を表示すると、セクションが間違った場所にある可能性がありますか? –

+0

私はweb.configファイルのprintscreenを追加するだけです –

+0

テストの速さはわかりませんが、イメージでは持続時間は60(= 1分)に設定されています –

答えて

0

のPrintScreenをない3600ようですあなたの質問に記載されています。

<add name="Cache1Hour" duration="60" varyByParam="none" location="Server"/> 
+0

これは問題ではありません –

関連する問題