Comment faire pour détecter les pannes de serveur ou de réseau lors de l’utilisation de XMLHTTP

Résumé

Lorsque vous utilisez des demandes XMLHTTP pour recevoir des données à partir d’un serveur Web, les requêtes peuvent être acceptées par le serveur au niveau TCP mais puis abandonnées par le serveur, sans fournir de la réponse HTTP. Dans ce scénario, l’application web devrez peut-être gérer ce problème pour pouvoir continuer à l’aide d’une nouvelle tentative ou une autre erreur similaire.

Ceci est possible en vérifiant l’état variable dans fonction de rappel onreadystatechange. Par exemple, dans un cas où l’appel XMLHTTP ne réussit pas ce statut aura la valeur 12152, qui est équivalent à ERROR_HTTP_INVALID_SERVER_RESPONSE. Readystate lui-même est déjà définie sur 4 (READYSTATE_COMPLETE).

L’exemple de l’événement onreadystatechange documentée dans MSDN (voir la section informations supplémentaires ci-dessous) vérifie l’état codes 200 (OK) ou 304 (non modifié) et interprète ces codes d’état comme étant réussie. Tout autre code d’état HTTP est considéré comme une condition d’erreur, qui inclura l’état 12152.

Lors de l’utilisation de la méthode HTTP POST dans la demande XMLHTTP, gardez à l’esprit les limitations qui sont décrites dans l’article suivant de la Base de connaissances :




En particulier, notez que lorsqu’une nouvelle publication a été initialisée uniquement dans les en-têtes HTTP sont envoyés, et les données qui doivent avoir été validées ne sont pas envoyées à nouveau. Étant donné que les en-têtes HTTP de la demande POST inclura généralement un en-tête Content-Length indiquant la taille des données de publication, le serveur devra attendre un délai d’attente a été déclenchée, qui entraîne généralement une réponse HTTP 500 (erreur de serveur) à partir du serveur Web pour les données.

Lorsque vous activez le correctif à partir de KB895954 en créant la clé FeatureControl FEATURE_SKIP_POST_RETRY_ON_INTERNETWRITEFILE_KB895954, l’incomplète nouvelle publication ne se produira pas et l’état 12152 sera signalé comme l’état de l’objet XMLHTTP. Par conséquent vous pouvez envisager d’effectuer une nouvelle tentative de la requête via un script.

Plus d'informations

895954 lorsque vous utilisez Internet Explorer ou un autre programme pour effectuer une opération nouvelle publication, seules les données de l’en-tête sont validées.


Description de l’événement onreadystatechange


193625 Infos : Codes d’erreur WinInet (12001 à 12156)



Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×