2011-01-21 11 views
4

내 응용 프로그램 (ASP.NET + c#) 사용자가 aspx 페이지를 입력하기 전에 캐시를 지워야합니다.프로그래밍 방식으로 캐시를 지우려면 어떻게해야합니까?

누구나 프로그래밍 방식으로 aspx 페이지 또는 코드 숨김 (C#)에서 캐시를 지울 수있는 사람이 있습니까? 페이지로드 이벤트에

+0

클라이언트 또는 서버 캐시? –

+0

클라이언트 캐시, 내 코드가 브라우저에서 캐시를 지울 때만 작동합니다. –

답변

11

쓰기 다음 코드 캐시를 (끔찍한 될 것이다) 취소 일부 자바 스크립트 방법이없는 한

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Cache.SetExpires(DateTime.Now); 
    Response.Cache.SetNoServerCaching(); 
    Response.Cache.SetNoStore(); 
} 
+0

로컬에서는 로컬로 작동하지만 내 응용 프로그램을 서버에 게시하면 다시 충돌합니다. ( –

+0

크래시가 의미하는 바는 무엇입니까? 다시. 서버에서 실제로 일어난 일을 조금 더 설명 할 수 있습니까? 캐싱 때문에 서버에 어떤 충돌이 발생했는지 확신 할 수 있습니까? – Sukhjeevan

+0

당신을 위해 충돌을 멈추었습니까? 제프 노먼? – strider

0

, 당신은 할 수 없습니다.

가장 좋은 방법은 Sukhi가 제안한 것처럼 페이지를 캐시하지 않는 것입니다. 또는 no-cache 캐시 프로필을 설정하고 OutputCache 지시문을 사용하면됩니다.

다음과 같이 출력 캐시에서 페이지를 제거 할 수 있습니다
1

: 당신은 아마 사용하지 않을 것입니다이 기술을 사용하려면, 그래서 이것은 어떤 클라이언트 측 캐시에서 제거되지 않습니다

HttpResponse.RemoveOutputCacheItem("MyPage.aspx"); 

클라이언트 측 캐시, 예. aspx 페이지에서 다음 지시문을 사용하십시오.

<%@ OutputCache Location="Server" ... 
관련 문제