Windows 8 응용 프로그램에서는 IXMLHTTPRequest2 메서드를 사용하여 크기가 기가 바이트에 도달 할 수있는 파일을 HTTP를 통해 스트리밍합니다. 이것은 내부적으로 WinRT가 임시 인터넷 캐시의 IXMLHTTPRequest2 호출을 통해 스트리밍되는 모든 것을 저장하는 캐싱 시스템을 가지고 있다는 것을 제외하면 완벽하게 작동합니다. 점점 더 많은 파일을 스트리밍 할 때, 캐시는 비우지 않고 디스크가 가득 찰 때까지 디스크에서 더 많은 공간을 차지하기 시작합니다.IXMLHTTPRequest2로 스트리밍 할 때 Windows 8에서 캐싱을 비활성화하는 방법은 무엇입니까?
최적으로이 캐싱 기능을 완전히 비활성화하고 싶습니다. 우리가 살 수있는 또 다른 옵션은 캐시 된 파일이 잠시 후에 제거된다는 것입니다 (임시 인터넷 캐시를 탐색하고 파일을 수동으로 제거하지 않아도 됨).
서버 응답에 "Expires : 0"헤더를 추가하고 IE에서 직접 캐싱을 사용하지 않도록 설정했지만 (IXMLHTTPRequest2 호출에 영향을 줄 수 있다고 생각했지만) 아무 소용이 없었습니다.
누구든지 이에 대해 의견이 있으십니까?
이 질문은 here으로 게시 된 다른 질문과 비슷하지만, 문제는 파일의 "신선함"이 아닌 캐시가 차지하는 공간과 관련이 있습니다.
편집 : 우리는 또한 MSDN 포럼에이 post을 발견 한 곳하는 MSFT 중재자, "당신의 부족에 대해 걱정할 필요가 없습니다 그래서 뜻이 주기적으로 캐시를 정리 시스템에 따라 디스크 공간 "이지만이 시나리오에서는 그렇지 않습니다.
각 요청에 대해 IRI 끝에 임의의 쿼리 문자열을 추가하는 것은 어떨까요? 예 : http://yourdomain.com/yourfile?random=201212121646 – kiewic
@Kiewic : 캐시의 데이터 양이 늘어나 OP의 문제가 악화됩니다. 문제는 캐시가 너무 커져서 OP가 부실한 응답을 얻지 못하는 것입니다. – ildjarn
MSDN 게시물에 "AC \ INetCache"위치가 나와 있지만이 경우 캐시 된 파일은 "C : \ Users \ \ AppData \ Local \ Microsoft \ Windows \ Temporary Internet Files \ Content.IE5"에 저장됩니다. 당신도 거기에 적용된다고 생각합니까? –
Fueled