문제

다른 ASP.NET 웹 애플리케이션 내부에서 하나의 ASP.NET 웹 응용 프로그램의 출력 캐시를 지울 수 있습니까?

이유는 ... 우리는 몇 가지 WEP 응용 프로그램이 있습니다.

/Area1/및/Area2/의 페이지는 캐시이며/인트라넷/cms/를 통해 관리됩니다. /intranet/cms/를 사용하여 페이지가 편집되면 적절한/영역#/응용 프로그램의 캐시에서 제거하려고합니다.

나는 이미 httpcontext.cache에 저장된 안내서를 찾는 VaryByCustom을 사용했지만 웹 애플리케이션에 따라 캐시 된 것으로 보입니다.

실제로 단일 서버의 웹 애플리케이션간에 데이터를 전달하는 방법이 있다면 + VaryByCustom을 사용할 수 있기 때문에 내 문제를 해결할 수 있습니다.

감사!

-마이크 토마스

도움이 되었습니까?

해결책

내가 과거에 이것을 한 방식은 "숨겨진"페이지를 갖는 것입니다 (각각 /areaX 플러싱, 재 장전 등을 수행하는 사이트). 페이지는 무엇이든 수행하기 전에 공유 비밀 쿼리 매개 변수를 검증합니다 (DOS 공격을 피하기 위해). 유효한 경우 페이지가 작업이 완료되면 "확인"메시지를 출력합니다. 비밀이 유효하지 않은 경우 404 오류를 생성합니다.

플러시가 항목 별 또는 그룹 별 기준으로 되려면 해당 항목/그룹을 식별하는 두 번째 매개 변수를 추가하십시오.

이 방법은 서버 기술 독립적이며 필요한 경우 다른 관리 도구에 의해 트리거 될 수 있습니다.

다른 팁

이 작업을 수행하는 한 가지 방법은 공유 리소스를 종속성, 일반적으로 파일로 사용하는 것입니다. 파일이 변경되면 캐시가 지워집니다. 나는 당신이 사용할 수 있다고 생각합니다 httpresponse.addfiledependency 이것을 위해.

그러나 이러한 경우 일반적으로와 같은 프로세스 외 캐시를 사용하는 것이 좋습니다. memcached. 나는 그것을 직접 테스트하지 않았지만 이것 링크 outputCache와의 memcached 사용에 대한 거래.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top