2017-11-10 4 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"으로 설정했지만 두 가지 결과가 나타납니다.

그리고 마지막으로, 나는 다른 테스트

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

을했다 그리고이 경우에 완벽하게 작동합니다.

어떤 의미입니까? 내 VaryByParm 속성이 web.config 파일에서 사용되지 않는 이유는 무엇입니까? 누군가 나를 설명 할 수 있습니까?

감사

업데이트 1 : 여기 는 지속 시간이 60 (= 일분)로 설정되어 당신의 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

아니요. 문제가되지 않습니다. –