내 ASP.NET 응용 프로그램에서 캐시되고 싶은 외부 리소스를 가져 오기 위해 HttpWebRequest를 사용합니다. 다음 코드를 고려하십시오HttpWebRequest가 ASP.NET 환경에서 캐시를 사용하도록 강제하는 방법은 무엇입니까?
var req = WebRequest.Create("http://google.com/");
req.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable);
var resp = req.GetResponse();
Console.WriteLine(resp.IsFromCache);
var answ = (new StreamReader(resp.GetResponseStream())).ReadToEnd();
Console.WriteLine(answ.Length);
의 HttpWebRequest는 IE 캐시를 사용, 나는 (작은 cmd를 테스트 응용 프로그램에서) 일반 사용자로 실행 그렇게 할 때, 데이터는 %userprofile%\Local Settings\Temporary Internet Files
에 캐시되고 다음 응답은 캐시에서 읽습니다.
ASP.NET 응용 프로그램에서 이러한 코드를 실행하면 데이터가 ...\ASPNET\Local Settings\Temporary Internet Files
에 캐시되지만 캐시가 사용되지 않는다고 생각했습니다.
내가 뭘 잘못하고 있니? HttpWebRequest가 ASP.NET 환경에서 캐시를 사용하도록 강제하는 방법은 무엇입니까?
어떤 계정 ASP.NET 응용 프로그램이 실행되고 :
이 문서는 우리의 캐시 문제 해결에 유용? 해당 계정으로 캐시가 생성됩니다. – feroze
@feroze : 앱이 ASPNET 계정으로 실행 중이며 Environment.SpecialFolder.InternetCache를 검사하여 임시 인터넷 파일 경로를 알고 있습니다. 문제는 캐시 항목이 만들어지는 위치를 모르지만 전혀 만들어지지 않습니다. – piotrsz
응답 개체를 닫고 처리 할 줄을 추가 할 수 있습니까? resp.Close(); 그래도 문제가 계속 발생하는지 확인하십시오. – feroze