REVISIÓN: Mensaje de Error en una aplicación de .NET remoting cuando utiliza direcciones IPv6: "se intentó realizar una operación de socket a un host inalcanzable"

Síntomas

Imagine el siguiente escenario:
  • En una aplicación de interacción remota de.NET Framework de Microsoft en un equipo que está ejecutando Microsoft Windows XP o Microsoft Windows Server 2003, utiliza IP versión 6 (IPv6) direcciones locales de sitio o direcciones locales de vínculo IPv6.
  • La aplicación de interacción remota de.NET Framework utiliza el canal TcpChannel.
En este escenario, recibirá el siguiente mensaje de error:
System.Net.Sockets.SocketException: Se intentó una operación de socket en un host inaccesible

Causa

Cuando utilice direcciones IPv6 en un equipo que ejecuta Windows XP o Windows Server 2003, el Microsoft.NET Framework quita el identificador de zona de Uniform Resource Identifier (URI) antes de la aplicación remota se conecta al servidor.

Cuando utiliza las direcciones IPv6 en un equipo que está ejecutando Windows Vista, la aplicación de interacción remota de.NET Framework utiliza la subred local si no se especifica el identificador de la zona. Por lo tanto, este problema no se produce en Windows Vista.

Solución

Información de la revisión

Ahora hay una revisión compatible de Microsoft. Sin embargo, se pretende corregir el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión puede ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack de.NET Framework 2.0 que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de los servicios de soporte al cliente de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:Nota: En casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Nota: Esta revisión puede utilizarse cuando se utiliza la siguiente:
  • Las direcciones IPv6 locales de sitio o direcciones locales de vínculo IPv6
  • El canal HttpChannel
  • Objetos activados en el servidor
Para otros escenarios, siga los pasos que se mencionan en la sección "Solución".

Requisitos previos

Debe tener la versión 2.0 de.NET Framework instalada para poder aplicar esta revisión.

Requisito de reinicio

Debe reiniciar el equipo después de aplicar este hotfix.

Información de reemplazo de revisión

Este hotfix no sustituye a otras revisiones.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.runtime.remoting.dll2.0.50727.898299,00828-Jun-200711:30x86

Solución alternativa

Para evitar este problema, utilice uno de los métodos siguientes:
  • Si utiliza direcciones de IPv6 locales de sitio o direcciones locales de vínculo IPv6, utilice el canal HttpChannel en lugar del canal TcpChannel.
  • Si utiliza el canal TcpChannel, utilice direcciones globales de IPv6 en lugar de las direcciones IPv6 locales de sitio o de las direcciones locales de vínculo IPv6.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Información de la pila de llamadas

Seguimiento de pila del servidor:
   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)
Propiedades

Id. de artículo: 939525 - Última revisión: 13 ene. 2017 - Revisión: 1

Comentarios