Pergunta

É possível limpar o cache de aplicativo web um asp.net saída de dentro de outro aplicativo asp.net web?

Razão de ser ... Temos várias aplicações WEP estruturado como ...

Páginas in / area1 / e / area2 / são armazenados em cache e são geridos através / intranet / cms /. Quando uma página é editada usando / intranet / cms / Eu quero limpá-la fora do cache no apropriado / área # / aplicação.

Eu já tentei usando um VaryByCustom que procura um guid armazenado no HttpContext.Cache mas que parece ser armazenado em cache por aplicação web, que não funciona.

Realmente se houvesse alguma maneira de passar dados entre aplicações web em um único servidor, que iria resolver o meu problema, desde que eu posso usar essa + VaryByCustom.

Obrigado!

-Mike Thomas

Foi útil?

Solução

A maneira que eu tenho feito isso no passado é ter uma página "oculta" (em cada um dos locais /areaX) que faz a lavagem, recarga, etc. A página valida um parâmetro de consulta segredo compartilhado antes de fazer qualquer coisa ( para evitar ataques DoS). Se válida na página saída seria uma mensagem de "OK" uma vez que a operação estiver concluída; gera um erro 404 se o segredo é inválido.

Se quiser que o flush para estar em uma base por item ou por grupo, em seguida, adicionar um segundo parâmetro que identifica o item / grupo.

Este método é também a tecnologia de servidor independente e pode ser desencadeada por outras ferramentas de gestão, se necessário.

Outras dicas

Uma maneira que eu conheço de fazer isso é usando um recurso compartilhado como uma dependência, geralmente um arquivo. Quando o arquivo for alterado, o cache é limpo. Eu acho que você pode usar HttpResponse.AddFileDependency para isso.

No entanto, nestes casos, é geralmente melhor usar um cache de out-of-process, como memcached . Eu não testei isso sozinho, mas este link ofertas em usar memcached com OutputCache.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top