웹 팜에서 서버 캐시를 원격으로 재설정하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/76855

  •  09-06-2019
  •  | 
  •  

문제

각 프로덕션 웹 서버는 별도의 웹 사이트(ASP.NET 웹 응용 프로그램)에 대한 자체 캐시를 유지 관리합니다.현재 캐시를 지우려면 서버에 로그인하고 web.config 파일을 "터치"합니다.

누구든지 안전하고 안전한 방법의 예를 가지고 있습니까? 떨어져서 특정 웹 애플리케이션에 대한 캐시를 재설정하시겠습니까?이상적으로는 "모든 서버에서 실행 중인 앱 X의 캐시를 삭제합니다"라고 말할 수 있을 뿐만 아니라 "서버 Y에서 실행 중인 앱 X의 캐시를 삭제합니다"라고 말할 수도 있습니다.

편집/설명:

  • 애플리케이션 자체를 통해 이 작업을 수행하는 것은 실제로는 선택 사항이 아니라는 점을 분명히 해야 합니다(예:일종의 애플리케이션 로그인, 캐시를 지우는 특정 페이지나 처리기로의 서핑).이와 같은 작업을 수행하려면 로깅 및 통계 추적 코드를 비활성화/우회하거나 통계를 엉망으로 만들어야 합니다.

  • 예, 캐시는 정기적으로 만료됩니다.하지만 제가 하고 싶은 것은 요청에 따라 특정 캐시를 만료할 수 있도록 무언가를 설정하는 것입니다. 일반적으로 데이터베이스에서 무언가를 변경한 후에(우리는 SQL 2000을 사용합니다).지금은 이 작업을 수행할 수 있지만 서버 자체에 로그인해야만 가능합니다.

도움이 되었습니까?

해결책 2

찾았다 DevX 유용해 보이는 터치 유틸리티에 관한 기사입니다.

이를 데이터베이스의 테이블(레코드를 추가하면 터치 유틸리티가 이를 찾아서 적절한 web.config 파일을 업데이트함) 또는 웹 서비스(전화를 걸면 터치 유틸리티가 호출되어 업데이트됨)와 결합해 보겠습니다. 적절한 web.config 파일)

다른 팁

각 애플리케이션에 대해 간단한 캐시 덤프.aspx 스크립트를 작성하여 캐시/애플리케이션 데이터를 삭제할 수 있습니다.이를 모든 애플리케이션에 복사하고 허브 스크립트를 작성하여 호출을 관리하세요.

보안을 위해 모든 종류의 인증 조회 또는 IP 확인을 추가할 수 있습니다.

실제 앱 덤핑을 수행하는 방법은 다음과 같습니다.

Context.Application.Lock()
Context.Session.Abandon()
Context.Application.RemoveAll()
Context.Application.UnLock()

이는 "우아한" 것은 아니지만 배치 스크립트를 실행하는 예약된 작업을 설정할 수 있습니다.스크립트는 기본적으로 web.config(또는 재컴파일을 유발하는 다른 파일)를 "접촉"합니다.

그렇지 않으면 애플리케이션 캐시가 N분 후에 만료되도록 설정되어 있지 않습니까?

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