방법: 파일 종속성을 사용하여 페이지 출력 캐시

Visual Studio 2010

업데이트: 2007년 11월

파일이 변경될 경우 출력 캐시에서 페이지를 제거할 수도 있습니다. 프로세스를 많이 사용하고 XML 파일을 출력하는 보고서에서 내용을 가져오는 페이지를 예로 들 수 있습니다. XML 파일이 변경될 경우에만 페이지를 다시 처리해야 합니다. 필요한 경우에만 다시 처리되도록 제한하려면 페이지의 캐시 정책이 단일 파일에 종속되도록 설정하면 됩니다. 필요한 경우, 캐시된 페이지가 둘 이상의 파일에 종속되도록 설정할 수 있습니다.

67z4z916.alert_note(ko-kr,VS.100).gif참고:

RemoveOutputCacheItem 메서드를 호출하여 페이지를 출력 캐시에서 명시적으로 제거할 수 있습니다. 이 작업은 응용 프로그램의 필요에 따라 Global.asax 파일, 사용자 지정 ASP.NET 서버 컨트롤 또는 페이지에서 수행할 수 있습니다.

캐시된 페이지 출력이 단일 파일에 종속되게 하려면

  1. 페이지 출력 캐싱의 설정을 선언적이나 프로그래밍 방식으로 지정합니다. 자세한 내용은 방법: ASP.NET 페이지 캐싱에 대한 만료 값 설정, 페이지의 캐시 가능성 설정여러 버전의 페이지 캐싱을 참조하십시오.

  2. 페이지 코드에서 AddFileDependency 메서드를 호출합니다. 그런 다음 종속성을 만드는 파일의 경로를 메서드의 filename 매개 변수로 전달합니다.

    다음 코드 예제에서는 TextFile1.txt 파일에 파일 종속성을 설정합니다. 이 파일이 변경되면 페이지 출력이 캐시에서 제거됩니다.

    protected void Page_Load(object sender, EventArgs e)
    {
        string fileDependencyPath = Server.MapPath("TextFile1.txt");
        Response.AddFileDependency(fileDependencyPath);
    
        // Set additional properties to enable caching.
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true);
    }
    

    Protected Sub Page_Load(ByVal sender As Object, _
            ByVal e As EventArgs) Handles Me.Load
        Dim fileDependencyPath As String = _
            Server.MapPath("TextFile1.txt")
        Response.AddFileDependency(fileDependencyPath)
    
        ' Set additional properties to enable caching.
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
        Response.Cache.SetCacheability(HttpCacheability.Public)
        Response.Cache.SetValidUntilExpires(True)
    End Sub
    
    67z4z916.alert_note(ko-kr,VS.100).gif참고:

    ASP.NET 사용자 정의 컨트롤에서는 이러한 메서드를 사용할 수 없습니다. 그러나 @ OutputCache 지시문을 지정하는 사용자 정의 컨트롤에서는 파일 종속성을 만들어 Dependency 속성에 할당할 수 있습니다.

캐시된 페이지 출력이 파일 그룹에 종속되게 하려면

  1. 페이지 출력 캐싱의 설정을 선언적이나 프로그래밍 방식으로 지정합니다. 자세한 내용은 방법: ASP.NET 페이지 캐싱에 대한 만료 값 설정, 페이지의 캐시 가능성 설정여러 버전의 페이지 캐싱을 참조하십시오.

  2. 페이지 코드에서 페이지가 종속되는 파일의 경로가 포함된 ArrayList 또는 String 배열을 만듭니다.

  3. AddFileDependencies 메서드를 호출한 다음 이 배열을 filenames 매개 변수로 전달합니다.

    다음 코드 예제에서는 TextFile1.txt 파일과 XMLFile1.xml 파일에 대한 파일 경로의 문자열 배열을 만들고 페이지 출력이 이 두 파일에 종속되도록 설정합니다. 두 파일 중 하나가 수정되면 페이지 출력이 캐시에서 제거됩니다.

    protected void Page_Load(object sender, EventArgs e)
    {
        string[] fileDependencies;
        string fileDependency1 = Server.MapPath("TextFile1.txt");
        string fileDependency2 = Server.MapPath("XMLFile1.xml");
        fileDependencies = new String[] { fileDependency1, 
            fileDependency2 };
        Response.AddFileDependencies(fileDependencies);
    }
    

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim fileDependencies() As String
        Dim fileDependency1 As String = Server.MapPath("TextFile1.txt")
        Dim fileDependency2 As String = Server.MapPath("XMLFile1.xml")
        fileDependencies = New String() {fileDependency1, _
            fileDependency2}
        Response.AddFileDependencies(fileDependencies)
    End Sub
    
표시: