Nous utilisons ExpertPDF pour prendre des URL et les transformer en fichiers PDF. Tout ce que nous faisons est à travers la mémoire, donc nous construisons la requête, puis lisons le flux dans ExpertPDF, puis écrivons les bits à classer. Tous les fichiers que nous avons demandés jusqu'ici sont simplement des documents HTML. Nos concepteurs mettent à jour les fichiers CSS ou modifient le code HTML et demandent de nouveau les documents au format PDF, mais souvent, les éléments sont mis en cache. Prenez, par exemple, si je renommer le seul fichier CSS et afficher la page HTML via un navigateur Web, la page semble cassée parce que le CSS n'existe pas. Mais si je demande cette page via le PDF Generator, cela semble toujours correct, ce qui signifie que quelque part le CSS est mis en cache. Voici le code de création PDF approprié:ExpertPDF et mise en cache d'URL
// Create a request
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.UserAgent = "IE 8.0";
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "GET";
// Send the request
HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
if (resp.IsFromCache) {
System.Web.HttpContext.Current.Trace.Write("FROM THE CACHE!!!");
} else {
System.Web.HttpContext.Current.Trace.Write("not from cache");
}
// Read the response
pdf.SavePdfFromHtmlStream(resp.GetResponseStream(), System.Text.Encoding.UTF8, "Output.pdf");
Lorsque je vérifie le fichier de trace, rien n'est chargé à partir du cache. J'ai vérifié le fichier journal IIS et trouvé une réponse 200 provenant de la requête, même après qu'un fichier ait été mis à jour (je m'attendrais à un 302). Nous avons essayé de mettre l'attribut No-Cache sur toutes les pages HTML, mais toujours pas de chance. J'ai même désactivé toute la mise en cache au niveau IIS. Y a-t-il quelque chose dans ExpertPDF qui pourrait être en cache quelque part ou quelque chose que je peux faire à l'objet de requête pour faire un rafraîchissement de toutes les ressources?
MISE À JOUR
je mis? Foo à la fin de mon style liens href et cela met à jour à chaque fois que le CSS. Existe-t-il un paramètre qui peut empêcher la mise en cache des feuilles de style afin que je n'ai pas à faire cette solution inélégante?
Le PDF est jamais envoyé au client. Il est stocké sur le serveur, ce qui m'a rendu confus car il n'y aurait pas de client pour mettre en cache des choses. – Josh
J'ai effectivement rencontré ce problème avec un site coldfusion. Je faisais des tests et j'ai constaté que le pdf ne se rafraîchissait jamais, Opera le mettant en cache et servant la version en cache. Je suis prêt à parier que c'est le problème. – andrewWinn