none
Pb HttpWebRequest et gestion du cache RRS feed

  • Question

  • Bonjour

    Je rencontre le pb suivant : Il semblerait que lorsqu'un webrequest dans une application ASP.NET appelle une page web en cache, la page est toujours considérée comme étant non cache.

    J'ai testé le cachepolicy... Sans changer le code, la même page ne marche plus. Si on appelle cette page en cache sous un browser, le cache fonctionne. Mais cela ne fonctionne PLUS si j'appelle la page avec un webrequest. Est un pb de mise à jour de sécurité ?

    Merci pour votre aide

    JRis2fun


    Le pb vient bien d'une MAJ windows mais je ne sais pas laquelle ! Sur une machine qui n'a pas eu de MAJ, cela fonctionne ! MAJ FWK ? MAJ SÉCURITÉ ? MAJ SYSTÈME ? Merci
    • Modifié Jris2fun mercredi 6 mars 2013 09:11
    mardi 5 mars 2013 15:59

Réponses

Toutes les réponses

  • Bonjour,

    Quelle est la politique que l'on teste ? Je dirais que si on la force explicitement elle devrait être appliquée (si c'est celle par défaut, il serait peut-être possible qu'elle ne soit pas la même d'une machine à l'autre ? Je ne sais pas si celle par défaut est reprise de la config IE ?)

    Je commencerais par faire un test avec une "policy" en dur dans le code...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mercredi 6 mars 2013 09:30
    Modérateur
  • Bonjour, en fait la page appelée par le httpwebrequest est en ouputcache de 240 secondes. Le httpwebrequest appelant la page a une policy CacheIsAvailable. Si on appelle la page via un browser elle est bien en cache et on ne passe qu'une fois dans le page_load, ce n'est PLUS le cas avec le HttpWebRequest alors que cela à toujours marché. Nous avons pris le même source et mis sur un autre serveur, cela marche très bien et sur les machines sur lesquelles cela marchait, cela ne fonctionne plus (sans changement du source). Nous en sommes arrivés à la conclusion qu'une mise à jour windows a causé le problème. Nous cherchons laquelle. Faites un essai, vous constaterez le problème sûrement. Tenez moi au courant, merci.
    mercredi 6 mars 2013 09:40
  • La date/heure des machines de test est-elle identique et dans le bon fuseau horaire ? On ne passe pas via un proxy dans l'un des deux cas ?

    Cela me paraitrait assez surprenant qu'une mise à jour supplante des directives de cache explicitement indiquées. Je commencerais sans doute par essayer F12 et faire une capture réseau (ou Fiddler) pour voir si l'échange HTTP semble ok dans les deux cas...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mercredi 6 mars 2013 09:59
    Modérateur
  • Re

    Même réseau pour les machines (celle qui marche et celles qui ne marchent plus), aucun pb d'heure, aucun proxy. Le problème est survenu depuis mercredi dernier. Rien n'a changé sur les postes (sauf des windows update).

    Le test à réaliser est simple : nouveau site web, un page en outputcache ServerAndClient qui affiche l'heure, une autre avec un httpWebrequest appelant la première page.

    Si on appelle la deuxième page, qui fait le webrequest, on passe systematiquement dans le page_load de la page appelée qui affiche l'heure (pas en cache). Une fois qu'on appelle la première page qui affiche l'heure dans un browser, elle est dans le cache de ie, et si on appelle la deuxième page, cela va alors chercher dans le cache !

    Besoin d'autres infos ? Mes explications sont elles suffisantes ?

    Help please

    • Modifié Jris2fun mercredi 6 mars 2013 16:20
    mercredi 6 mars 2013 14:44
  • Pour info, j'ai essayé UtcNow et Now (+240 secondes) dans la date d'expiration sans plus de résultat.

    Merci

    mercredi 6 mars 2013 16:22
  • Voila la raison du pourquoi du comment

    http://stackoverflow.com/questions/14211464/output-cache-is-not-working-net4-0

    Ou plutôt la raison du comment. Parce que le pourquoi, on se demande encore...

    mercredi 6 mars 2013 17:40
  • D'après le bulletin la mise à jour concerne également une vulnérabilité lié au "OutputCache" :

    http://technet.microsoft.com/en-us/security/bulletin/MS11-100 mais la modif n'est pas détaillée (je ne sais pas si c'est une interdiction totale ou si par défaut il faut être un peu plus "insistant" pour que le cache soit gérée). Si cela continue de marcher avec un navigateur mais plus avec HttpWebRequest c'est sans doute que c'est une valeur par défaut et qu'il est possible de rétablir le fonctionnement voulu ?

    Bon courage (j'ai marqué votre réponse).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mercredi 6 mars 2013 18:10
    Modérateur