Como: Cache de saída de uma página com dependências de chave de cache

Às vezes convém remover uma página do cache de saída quando um item do cache é removido.Por exemplo, pode existir uma página que exibe um relatório de processos intensivos que é colocando no cache do aplicativo e utilizado por várias páginas.Quando um relatório é modificado ou removido do cache, você pode desejar que a saída da página também seja removida do cache porque o relatório não mais será válido.Para fazê-lo você pode fazer a saída cacheada da página dependente de outros itens do cache.

Observação:

Você pode remover explicitamente qualquer página do cache de saída chamando o método RemoveOutputCacheItem.Você pode fazer isso, de um controle servidor ASP.NET personalizado, ou de uma página, dependendo das necessidades do seu aplicativo a partir do arquivo Global.asax.

Para tornar a saída de página em cache dependente de um item

  1. Especifique as configurações para saída da página em cache declarativamente ou através de programação.Para obter mais informações, consulte Como: conjunto valores de expiração para ASP.NET página cache, Definindo a Cacheabilidade de uma Página e Armazenando Múltiplas Versões de uma Página.

  2. No código da página, chame o método AddCacheItemDependency.Como parâmetro cacheKey, passe o nome do item em cache com o qual você deseja criar a dependência.

    O seguinte exemplo de código mostra como definir uma dependência de um item nomeado ProcessIntensiveReport.Quando o item for alterado ou removido, a saída da página será removida do cache.

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.AddCacheItemDependency("ProcessIntensiveReport");
    
        // 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 System.EventArgs) Handles Me.Load
        Response.AddCacheItemDependency("ProcessIntensiveReport")
    
        ' Set additional properties to enable caching.
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
        Response.Cache.SetCacheability(HttpCacheability.Public)
        Response.Cache.SetValidUntilExpires(True)
    End Sub
    
    Observação:

    Você não pode chamar o método AddCacheItemDependency no controle de usuário do ASP.NET.No entanto, em qualquer controle de usuário que especifica a diretiva @ OutputCache, você pode criar um objeto CacheDependency que descreve as dependência chave do cache e designá-lo para a propriedade Dependency do objeto UserControl.

Consulte também

Tarefas

Como: conjunto por programação Cacheability da página

Conceitos

Cache de páginas ASP.NET

Definindo a Cacheabilidade de uma Página