2014-04-29 8 views
0

파일 확장자별로 디렉토리에 캐시 규칙이 있으며 그 디렉토리에 동적 페이지가 2 개 있습니다.출력 캐시가 모든 페이지 캐싱을하지 않습니다.

<configuration> 
     <system.webServer> 
      <caching> 
       <profiles> 
        <add extension=".asp" 
         policy="CacheForTimePeriod" 
         kernelCachePolicy="DontCache" 
         duration="03:00:00" 
         location="Any" 
         varyByQueryString="*" /> 
       </profiles> 
      </caching> 
     </system.webServer> 
    </configuration> 

정말 그들이 모두 도망 쿼리 문자열, HTML 그러나, IIS가 나는 이유를 알아낼 수없는 이유 중 하나를 캐시 할 나던, 둘 사이에 큰 차이가 없습니다. 하나는 완벽하게 캐시되지만 다른 하나는 그렇지 않습니다. 캐시 된 페이지가 항상 256kb 미만이고 다른 하나는 일반적으로 끝났기 때문에 출력 파일 크기 때문일 수 있다고 생각했습니다. 그리고 다른 하나는 보통 이상이며, 256kb는 MaxCachedFileSize의 기본 설정입니다. 그래서 MS의 제안에 따라 다음 레지스트리를 추가 :

HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\MaxCachedFileSize

을 기본 256킬로바이트 때문에 내가 10,485,760 바이트 (10메가바이트)로 설정합니다. 아직 캐싱하지 않습니다. 내가 말했듯이, 같은 디렉토리에있는 다른 파일은 괜찮지 만 다른 하나는 그렇지 않습니다. 그게 뭔지 모르겠지만, 서버에 사용되는 메모리가 거의 없다. 그래서 이것은 사용 가능한 메모리 공간이 아닌 것으로 생각된다.

또한 페이지에서 쿠키를 보내면 IIS가 페이지를 캐시하지 않을 수 있지만 페이지는 쿠키를 보내지 않음을 읽었습니다.

답변

0

페이지에서 Response.Flush을 제거하면 나중에 다른 사람의 트릭을 만들었습니다.