Domanda

È possibile cancellare la cache di output di un'applicazione web asp.net dall'interno di un'altra applicazione web asp.net?

Il motivo è ... Abbiamo diverse applicazioni wep strutturate come ...

Le pagine in / area1 / e / area2 / vengono memorizzate nella cache e gestite tramite / intranet / cms /. Quando una pagina viene modificata utilizzando / intranet / cms / desidero cancellarla dalla cache nell'applicazione / area # / appropriata.

Ho già provato a utilizzare un VaryByCustom che cerca una guida memorizzata in HttpContext.Cache ma che sembra essere memorizzata nella cache per applicazione Web, che non funziona.

Davvero se ci fosse un modo per passare i dati tra le applicazioni Web su un singolo server, ciò risolverebbe il mio problema, dal momento che posso usare quel + VaryByCustom.

Grazie!

-Mike Thomas

È stato utile?

Soluzione

Il modo in cui l'ho fatto in passato è di avere un "nascosto" pagina (in ciascuno dei siti / areaX ) che esegue lo svuotamento, il ricaricamento, ecc. La pagina convalida un parametro di query segreta condiviso prima di fare qualsiasi cosa (per evitare attacchi DoS). Se valido, la pagina produrrà un "OK" messaggio una volta completata l'operazione; genera un errore 404 se il segreto non è valido.

Se vuoi che il flush sia su base per articolo o per gruppo, aggiungi un secondo parametro che identifichi quell'elemento / gruppo.

Questo metodo è anche indipendente dalla tecnologia server e può essere attivato da altri strumenti di gestione, se necessario.

Altri suggerimenti

Un modo in cui so di farlo è usare una risorsa condivisa come dipendenza, di solito un file. Quando il file viene modificato, la cache viene cancellata. Penso che tu possa usare HttpResponse.AddFileDependency per questo.

Tuttavia, in questi casi è in genere preferibile utilizzare una cache out-of-process come memcached . Non l'ho provato da solo, ma questo link si occupa dell'uso di memcached con OutputCache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top