CORRECTIF : Message d’erreur dans une application .NET remoting lorsque vous utilisez des adresses IPv6 : « une opération de socket a été tentée sur un hôte impossible à atteindre. »

Symptômes

Considérez le scénario suivant :
  • Dans une application de communication à distance de Microsoft.NET Framework sur un ordinateur qui exécute Microsoft Windows XP ou Microsoft Windows Server 2003, vous utilisez le protocole IP version 6 (IPv6) adresses site-local ou des adresses de lien local IPv6.
  • L’application de communication à distance.NET Framework utilise le canal TcpChannel.
Dans ce cas de figure, le message d’erreur suivant s’affiche :
System.Net.Sockets.SocketException : Une opération de socket a été tentée sur un hôte impossible à atteindre

Cause

Lorsque vous utilisez des adresses IPv6 sur un ordinateur qui exécute Windows XP ou Windows Server 2003, le Microsoft.NET Framework supprime l’ID de zone à partir de l’identificateur URI (Uniform Resource) avant l’application de communication à distance se connecte au serveur.

Lorsque vous utilisez des adresses IPv6 sur un ordinateur qui exécute Windows Vista, l’application de communication à distance.NET Framework utilise le réseau secondaire local si l’ID de zone n’est pas spécifié. Par conséquent, ce problème ne se produit pas sur Windows Vista.

Résolution

Informations sur le correctif

Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif peut subir des tests supplémentaires. Par conséquent, si vous n’êtes pas sérieusement concerné par ce problème, nous vous recommandons d’attendre le prochain service pack.NET Framework 2.0 qui comprendra ce correctif.

Pour résoudre ce problème immédiatement, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations sur les coûts de support, visitez le site Web de Microsoft à l’adresse suivante :Remarque Dans des cas particuliers, des frais généralement encourus pour les appels au support technique peuvent être annulés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes qui ne relèvent pas de la mise à jour spécifique en question.

Remarque Ce correctif peut être utilisé lorsque vous utilisez la commande suivante :
  • Les adresses site-local IPv6 ou adresses IPv6 lien-local
  • Le canal de HttpChannel
  • Objets activés par le serveur
Pour d’autres scénarios, suivez les étapes mentionnées dans la section « Contournement ».

Conditions préalables

Vous devez avoir le 2.0 de.NET Framework installé pour appliquer ce correctif.

Nécessité d’un redémarrage

Vous devez redémarrer l'ordinateur après avoir appliqué ce correctif.

Informations de remplacement du correctif

Ce correctif ne remplace aucun autre correctif.

Informations sur les fichiers

La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.
Nom de fichierVersion de fichierTaille du fichierDateHeurePlateforme
System.runtime.remoting.dll2.0.50727.898299,00828-Jun-200711:30x86

Solution de contournement

Pour contourner ce problème, appliquez l’une des méthodes suivantes :
  • Si vous utilisez les adresses site-local IPv6 ou adresses IPv6 lien-local, utilisez le canal HttpChannel et la chaîne de TcpChannel.
  • Si vous utilisez le canal TcpChannel, utilisez les adresses globales IPv6 au lieu d’adresses IPv6 site-local ou des adresses de lien local IPv6.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft

Informations de pile d’appels

Trace de la pile serveur :
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket(EndPoint ipEndPoint)
at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket()
at System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machinePortAndSid, Boolean openNew)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
Propriétés

ID d'article : 939525 - Dernière mise à jour : 13 janv. 2017 - Révision : 1

Commentaires