2010-01-28 5 views
2

generateimage.aspx 페이지를 사용하여 이미지의 이미지 소스로 사용됩니다.때때로 asp.net 페이지가 호출되고 일부 시간이 아님

이 페이지가 호출되면 쿼리 문자열을 전달한 다음 Session["abc"] var whoes 값을 jpg 이미지로 다시 실행 중입니다.

GenerateImage 페이지는 img 태그 아래의 이미지 소스로 GenerateImage.aspx?text=P 같은 다른 페이지의 test.aspx에서 호출됩니다. 반환 된 값은 이미지 형식으로 표시됩니다.

문제 :이 페이지를 호출하는 데 시간이 걸릴 수 있습니다. 따라서 페이지가 호출되지 않으면 반환되는 이미지 값은 이전 세션의 Session [ "abc"] var에 할당 된 값입니다.

페이지가 언젠가 언젠가 불려지는 이유를 알려주십시오. 그리고이 문제를 어떻게 처리 할 수 ​​있습니까?

답변

3

저는 이것이 캐싱 문제라고 생각합니다. 쿼리 문자열로 요청 URL의 끝 부분에 타임 스탬프 또는 임의의 숫자를 추가하여이 문제를 해결할 수 있습니다. 당신은이 방법을 캐싱을 해제 할 수 있습니다

GenerateImage.aspx?text=P&dynstr=" + (new Date()).getTime(); 
0

같은

뭔가 :

내가 @pulse에 동의
Response.Cache.SetExpires(DateTime.Now.AddDays(-1)); 
0

, HTML 이미지는 일반적으로 대부분의 브라우저에서 캐시됩니다. 그래서 당신은 두 가지 옵션이 있습니다 : 1. 무작위 문자열을 소스에 추가하십시오. (그냥 해킹 일 뿐이므로 마음에 들지 않습니다.) 2. 응답 헤더를 설정하여 캐쉬가 없도록 페이지를 설정하십시오.

또 다른 한가지는 이미지 처리를위한 표준 aspx 페이지 대신 처리기 (ashx 페이지)로 전환하는 것이므로 훨씬 적은 가계/수명주기를 가지며 쉽게 재사용 할 수 있습니다.

관련 문제