Comment Internet Explorer utilise le cache pour les entrées d’hôte DNS


Avertissement: l’utilisation incorrecte de l’Éditeur du Registre peut générer des problèmes sérieux pouvant vous obliger à réinstaller votre système d’exploitation. Microsoft ne peut garantir que les problèmes résultant d’une utilisation incorrecte de l’Éditeur du Registre puissent être résolus. Utilisez l'éditeur de Registre à vos risques et périls.

Résumé


Dans les versions antérieures d’Internet Explorer (Internet Explorer 3.x), les entrées d’hôte DNS sont mises en cache pendant 24 heures par défaut. Dans de nombreux cas, il est trop long. Durant cette période, certaines entrées d’hôte cessent de fonctionner en raison de la modification de l’adresse IP du serveur distant initialement résolue.


Internet Explorer 4.x et versions ultérieures modifient la façon dont les entrées d’hôte DNS sont mises en cache en réglant la valeur de délai d’attente par défaut à 30 minutes.

Plus d'informations


Avertissement: l’utilisation incorrecte de l’Éditeur du Registre peut générer des problèmes sérieux pouvant vous obliger à réinstaller votre système d’exploitation. Microsoft ne peut garantir que les problèmes résultant d’une utilisation incorrecte de l’Éditeur du Registre puissent être résolus. Utilisez l'éditeur de Registre à vos risques et périls.

Dans certains cas, ce nouveau délai est trop court. Si votre environnement comporte un certain nombre de clients qui se connectent et effectuent tous des recherches DNS toutes les 30 minutes, vous pouvez rencontrer une augmentation indésirable du trafic réseau. Pour modifier ce comportement, modifiez le Registre suivant :
  1. Démarrez l'Éditeur du Registre.
  2. Recherchez et cliquez sur la clé suivante dans le Registre :
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  3. Dans le menu Edition , cliquez sur Ajouter une valeur, puis ajoutez les valeurs de Registre suivantes :
    Nom de la valeur : DnsCacheTimeout
    Type de données : REG_DWORD
    Base : décimal
    Valeur : (temps en secondes)


    Nom de la valeur : ServerInfoTimeOut
    Type de données : REG_DWORD
    Base : décimal
    Valeur : (temps en millisecondes)
  4. Quittez l’Éditeur du Registre.
Par exemple, pour définir la valeur de délai d’attente de 10 minutes, utilisez une valeur de 600 secondes.
RemarqueVous devez utiliser à la fois les valeurs de Registre répertoriées à l’étape 3 pour contrôler le mécanisme de cache de résolution interne de Internet Explorer.
RemarqueCes paramètres s’appliquent à Internet Explorer et WinInet asynchrone appelle uniquement. Ces paramètres ne s’appliquent pas aux appels de WinInet synchrone.

Solution de contournement


Si vous devez apporter synchrone appelle dans WinInet, les délais d’attente DNS ne fonctionnent pas lorsque définir la façon dont elles sont présentées dans la section « Informations complémentaires ». Appels asynchrones sélectionneront ces valeurs correctement.

Méthode 1

Pour contourner ce problème, redémarrez l’application qui utilise WinInet.

Méthode 2

Utiliser la solution de contournement suivante du code. Ouvrir et fermer le handle que vous recevez avec l’appel à InternetOpen puis ouvrez-le à nouveau.

hOpen=::InternetOpen(.....)
InternetCloseHandle(hOpen);
hOpen=::InternetOpen(.....);
//
Maintenant, utilisez la poignée.
Les délais d’attente DNS sont appliquées.