BOGUE : Méthode de charge ne peut pas charger des Documents XML via une connexion SSL

S’applique à : Aucune

Symptômes


Lorsque vous utilisez la méthode Load du modèle d’objet XMLDOM synchrone de charger un document de langage de balisage Extensible (XML) sur un ordinateur client via une connexion SSL, la méthode échoue avec l’erreur 0x800c0007 et valeur de retour de la INET_E_DATA_NOT_AVAILABLE.

Cause


Ce problème se produit lorsque le fichier n’est pas mis en cache sur l’ordinateur client. Il existe plusieurs raisons pourquoi le fichier ne peut-être pas mise en cache :
  • L’utilisateur sélectionne la case à cocher ne pas enregistrer les pages cryptées sur le disque , sur l’onglet Avancé de la boîte de dialogue Options Internet .
  • Le serveur envoie un pragma : no-cache ou Cache-contrôle : no-en-tête de cache.
  • Si vous utilisez Microsoft Internet Information Server (IIS), l’option l’Expiration de contenu est définie pour expirer immédiatement, qui envoie des en-têtes non-cache ainsi que la date d’expiration : 0 en-tête HTTP.

Résolution


Pour résoudre ce problème, effectuez les opérations suivantes :
  1. Dans Internet Explorer, dans le menu Outils , cliquez sur Options Internet. Sous l’onglet Avancé , désactivez la case à cocher ne pas enregistrer les pages cryptées sur le disque .
  2. Assurez-vous que le serveur n’envoie pas d’en-têtes non-cache.
  3. Dans IIS, dans le composant logiciel enfichable Microsoft Management Console (MMC), cliquez sur le fichier XML. Sous l’onglet En-têtes HTTP , activez l’option à l’Expiration de contenu.

Statut


Microsoft a confirmé qu’il s’agit d’un bogue dans les produits Microsoft répertoriés au début de cet article.

Informations supplémentaires


Procédure pour reproduire le comportement

  1. Dans Internet Explorer, dans le menu Outils , cliquez sur Options Internet. Sous l’onglet Avancé , désactivez la case à cocher ne pas enregistrer les pages cryptées sur le disque .
  2. Créez un fichier HTML nommé Test.html et collez le code suivant :
    <HTML><BODY><INPUT type=button onclick=loadmyxml() value="Load XML"><SCRIPT>function loadmyxml(){var XMLObj = new ActiveXObject("Microsoft.XMLDOM")XMLObj.async = false;XMLObj.load('https://localhost/secure/test.xml'); if (XMLObj.parseError.errorCode != 0)alert("Error loading XML file : " + XMLObj.parseError.reason);elsealert (XMLObj.xml);}</script></BODY></HTML>
  3. Enregistrer les Test.html dans un dossier sécurisé sur votre serveur Web.
  4. Créer un nouveau fichier XML, nommé Test.xml, puis collez le code suivant :
    <?xml version='1.0' ?><BOOKLIST><BOOK><CATEGORY>Fiction</CATEGORY><TITLE>The Snow Leopard</TITLE><AUTHOR>Desmond Bagley</AUTHOR></BOOK></BOOKLIST>
  5. Enregistrer Test.xml dans un dossier sécurisé sur votre serveur Web.
  6. Dans Internet Explorer, accédez à Test.html, puis cliquez sur Chargement XML. Vous recevez l’erreur 0x800c0007.

Références


Pour plus d’informations sur XML, consultez l’article suivant sur le réseau MSDN (Microsoft Developer) :Pour plus d’informations sur le développement de solutions Web pour Microsoft Internet Explorer, visitez les sites Web de Microsoft à l’adresse suivante :