ContextePourquoi la page d'une URL utilise-t-elle la page mise en cache d'une autre URL?
Je suis assez nouveau pour ASP.NET et très nouveau au concept de la mise en cache. J'espère que pour quelqu'un qui sait ce qu'ils font, le problème ici sera évident. En utilisant MCMS 2002, j'ai créé une page template.aspx qui reçoit une chaîne de requête "person_id" et construit les pages en conséquence. Plusieurs départements différents de l'école où je travaille utilisent ce modèle pour afficher les biographies des professeurs. Tout ceci fonctionne correctement.
Le problème
Les problèmes commencent à se produire lorsque je tente la mise en cache de la page. Quand une personne visite person_id = 16175 sur la page d'un département, puis visite la même bio numérique sur une page de département différente, elle charge la page mise en cache au lieu de la reconstruire. Le problème, alors, est qu'il a tous la mauvaise marque de département. Par exemple:
http://health.usf.edu/medicine/obgyn/facstaf/profiles.htm?person_id=16175 http://health.usf.edu/medicine/surgery/surgery_bios.html?person_id=16175
C'est la même person_id, mais les URL sont évidemment différentes. Ce serait génial si le modèle reconnaissait les différentes URL et ignorait le cache. Je suppose que le problème réside dans le fait que les deux pages sont construites en utilisant la même page ASPX sur le backend. Voici le bit OutputCache de la page aspx:
<%@ OutputCache Duration="86400" Location="Server" VaryByParam="person_id; section" VaryByCustom="CMSPosting" VaryByHeader="Referer" %>
Je suppose que je fais quelque chose de mal ici. Espérons que ce sera évident pour quelqu'un qui sait ce qu'ils font. Si vous avez besoin de plus d'informations, n'hésitez pas à demander. Merci!
Impressionnant! Cela a pris soin des choses, et comme un bonus supplémentaire, j'ai maintenant une bien meilleure compréhension de la façon dont fonctionne VaryByCustom. –
N'est-il pas préférable d'appeler la méthode de base lorsque arg ne correspond pas? 'return base.GetVaryByCustomString (contexte, arg);' –