2010-03-11 5 views
0

Nous avons une petite batterie de serveurs Web (2 serveurs) équilibrée par l'équilibreur de charge réseau intégré dans Windows 2003. Nous avons quelques pages qui utilisent la mise en cache des pages. Ma question est: Est-il possible qu'un utilisateur donné puisse mettre en cache une page et qu'un autre utilisateur voit ce contenu? Voici la directive de page pour la page en question:Cache de page ASP.NET dans une ferme Web

<%@ OutputCache Duration="1" NoStore="true" VaryByParam="none" %> 

La raison pour laquelle la durée est réglée sur « 1 » est de faire en sorte que la page ne cache pas plus longtemps de 1 seconde en raison des opérations que les actions sur le la page peut déclencher.

+2

Pourquoi même cache dans le scénario que vous avez montré? –

+0

En fait, nous essayons d'empêcher la mise en cache lorsque l'utilisateur clique sur le "bouton de retour" – Achilles

Répondre

0

Je pense au lieu de mettre en cache la page pour une seconde, vous devriez examiner comment pas exécuter les transactions lorsqu'elles ont été exécutées.

0

Oui, tous les utilisateurs ayant demandé une page en particulier en second verront la sortie SAME.

Dans asp.net, il est préférable d'utiliser OutputCache au niveau des contrôles, qui a la même syntaxe.

Vous pouvez aller avec VaryByCustom et le faire en fonction de la connexion de l'utilisateur ou d'autres informations. J'ai implémenté ceci pour la page qui affichait l'information dépendante de localisation.

De plus, Il n'y a pas de sens pour la mettre en œuvre en fonction de connexion/identifiant utilisateur, parce que les utilisateurs ne seront pas demander des données plusieurs fois par seconde

+0

Même avec la propriété Durée définie sur 1? Nous essayons de forcer l'expiration de la page après chaque publication pour empêcher l'utilisateur de cliquer sur "retour" et de replacer les transactions. – Achilles

+0

'Retour' chargera la page du cache du navigateur dans la plupart des cas. OutputCache ne peut pas vous arrêter du tout. Je pense que vous devez jouer avec les en-têtes de page, où il devrait être possible de spécifier la date d'expiration de la page, mais je ne suis pas expert dans cette – st78