Cómo solucionar problemas de firewall de MS DTC

Exención de responsabilidades de contenido KB retirado

Este artículo se refiere a productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Resumen

Este artículo describe los pasos para habilitar el Coordinador de transacciones distribuidas de Microsoft (MS DTC) para comunicarse a través de un firewall con otro MS DTC. La lista siguiente describen algunos de los problemas que puede experimentar cuando utiliza MS DTC a través de un servidor de seguridad:
  • Las funciones de aplicación correctamente cuando los componentes MTS o COM + tienen su propiedad de Compatibilidad con transacciones compatibleso No compatibles , pero no funciona correctamente cuando se establece esa propiedad requiere o Requiere nueva.
  • Recibe el mensaje de error siguiente:
    No se puede inscribir nueva transacción en el Coordinador de transacciones especificado
  • Recibe el mensaje de error siguiente:
    Error 8004d00a. Error en la transacción distribuida
Aunque otros documentos de Microsoft describen cómo resolver este problema, este artículo resume la mayoría de ellos.

Nota: Los pasos de solución de problemas que siguen están diseñados para su uso con sólo sistemas operativos Microsoft Windows NT y Microsoft Windows 2000.

Más información

Pasos para solucionar problemas

Importante: esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para una mayor protección, haga una copia de seguridad del registro antes de modificarlo. Entonces, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756 cómo hacer copia de seguridad y restaurar el registro en Windows
  1. Compruebe que se ha iniciado el servicio MS DTC en ambos servidores.
  2. Si su servidor está ejecutando Windows NT 4.0, debe volver a aplicar el Service Pack 6 (SP6) de Windows NT 4.0 después de instalar Windows NT 4.0 Option Pack (NTOP). Revise las versiones que se enumeran en la tabla siguiente para comprobar que se hayan vuelto a aplicar Windows NT 4.0 SP6 después de la instalación de Windows NT 4.0 Option Pack:
    Nombre de archivoVersión después de instalar NTOPVersión después de reinstalar el Service Pack 6
    Msdtcprx.dll1997.11.5321999.6.854.0
    Msdtctm.dll1997.11.5321999.6.854.0
    Xolehlp.dll1997.11.5321998.08.762
    Para obtener más información acerca de la instalación de Windows NT 4.0 Option Pack, consulte el siguiente documento técnico de Microsoft:
    Procedimiento de instalación recomendado por IIS 4.0
    http://support.microsoft.com/support/iis/install/install_iis4.asp
  3. Configurar los servidores para que fluya la comunicación de MS DTC entre el servidor de seguridad. Siga estos pasos para controlar la asignación dinámica de puertos RPC.

    Nota: Debe seguir estos pasos en ambos equipos.

    Nota: El servidor de seguridad debe abrirse en ambas direcciones para los puertos especificados.
    1. Para iniciar el Editor del registro, haga clic en Inicio, haga clic en Ejecutar, escriba regedt32y, a continuación, haga clic en Aceptar.



      Debe utilizar el archivo Regedt32.exe en lugar del archivo Regedit.exe. El archivo Regedit.exe no admite el tipo de datos REG_MULTI_SZ necesario para el valor de puertos.
    2. En el Editor del registro, expanda la siguiente clave:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
    3. Haga clic en la carpeta RPC y, a continuación, haga clic en Agregar clave en el menú Edición .
    4. En el cuadro de diálogo Agregar clave , escriba Internet en el cuadro Nombre de clave y, a continuación, haga clic en Aceptar.
    5. Haga clic en la carpeta de Internet y, a continuación, haga clic en Agregar valor en el menú Edición .
    6. En el cuadro de diálogo Agregar valor , escriba puertos en el cuadro Nombre de valor .
    7. En el cuadro Tipo de datos , seleccione REG_MULTI_SZy, a continuación, haga clic en Aceptar.
    8. En el cuadro de diálogo Editor de cadenas múltiples , especificar el puerto o puertos que desea que utilice RPC para asignación dinámica de puertos en el cuadro datos y, a continuación, haga clic en Aceptar.



      Cada valor de cadena que escriba especifica un solo puerto o un rango de puertos. Por ejemplo, para abrir el puerto 5000, especifique "5000". Para abrir el puerto 5000 a puerto 5020 inclusive, especifique "5000-5020". Puede especificar varios puertos o intervalos de puertos mediante la especificación de un puerto o rango por línea. Todos los puertos deben estar en el intervalo de 1024 a 65535. Si cualquier puerto está fuera de este rango o alguna cadena no es válida, RPC tratará toda la configuración como no válida.

      Se recomienda que abra puertos de 5000 y superiores, y que abra un mínimo de 15 a 20 puertos.
    9. Siga los pasos e a h para agregar otra clave. Utilice los siguientes valores:
      • Valor: PortsInternetAvailable
      • Tipo de datos: REG_SZ
      • Datos: Y


      Esto significa que los puertos que se enumeran en el valor de puertos están disponible con Internet.
    10. Configure el firewall para permitir el acceso entrante a los puertos dinámicos especificados y al puerto 135 (puerto asignador de extremos RPC).
    11. Reinicie el equipo. Una vez reiniciado el RPC, asigna puertos entrantes dinámicamente, basándose en los valores del registro que ha especificado. Por ejemplo, para abrir puertos 5000 a 5020 inclusive, cree los valores siguientes:
      • Puertos: REG_MULTI-SZ: 5000-5020
      • PortsInternetAvailable: REG_SZ: Y
      • UseInternetPorts: REG_SZ: Y

    DTC también requiere que puede resolver nombres de equipo mediante el uso de NetBIOS o DNS. Puede probar si NetBIOS puede resolver los nombres mediante el protocolo PING y el nombre del servidor. El equipo cliente debe ser capaz de resolver el nombre del servidor. Además, el servidor debe ser capaz de resolver el nombre del cliente. Si NetBIOS no puede resolver los nombres, puede agregar entradas a los archivos Lmhosts en los equipos. Para obtener más información acerca de cómo configurar puertos TCP en Windows 2000, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    300083 cómo restringir los puertos TCP/IP en Windows 2000 y Windows XP

  4. Si MS DTC sigue sin funcionar a través del firewall, la herramienta DTCPing.exe de descargar e instalar esta herramienta en ambos servidores implicados. El archivo siguiente está disponible para su descarga desde Microsoft Download Center:
    El archivo DTCPing.exe contiene los siguientes archivos:
       Date         Time   Version  Size     Filename   ----------------------------------------------------------
    29-Oct-2003 22:56 1.8.0.1 274,490 Dtcping.exe
    15-Dec-2003 22:05 1,618 Eula.txt
    24-Nov-2003 20:59 1,560 Machinea_failure.log
    24-Nov-2003 20:21 1,901 Machinea_success.log
    24-Nov-2003 20:55 999 Machineb_failure.log
    24-Nov-2003 20:31 1,750 Machineb_success.log
    24-Nov-2003 20:15 2,325 Readme.txt
    Fecha de lanzamiento: 24 de noviembre de 2003

    Para obtener más información acerca de cómo descargar archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:
    119591 cómo obtener archivos de soporte técnico de Microsoft desde los servicios en línea
    Microsoft analizó este archivo en busca de virus. Microsoft ha utilizado el software de detección de virus más reciente que estaba disponible en la fecha en que se publicó el archivo. El archivo se almacena en servidores seguros que ayudan a evitar cambios no autorizados en el archivo.
  5. Utilice el archivo Readme.txt que se incluye en la descarga de DTCPing.exe para probar la comunicación de llamada a procedimiento remoto (RPC) y el Coordinador de transacciones distribuidas (DTC) de Server1 a Server2. Si esta prueba se realiza correctamente, ejecute la prueba de Server2 a Server1.

    Tenga en cuenta que si RPC no puede fluir en ambas direcciones, MS DTC falla la comunicación en ambas direcciones. Si se produce un error en la comunicación de RPC, la ventana de DTCPing (en el servidor) muestra este error, que también se guarda en el archivo dtcping.log asociado. Consulte el archivo Readme.txt para obtener más información. Si se produce un error en la prueba en cualquier dirección y el registro indica que el error se encuentra en la comunicación RPC, continúe con el paso siguiente. Si se produce un error en la prueba en cualquier dirección y el registro indica que el error está en la comunicación de DTC, continúe con el paso 9 a continuación.
  6. Si el error de RPC en al menos una dirección (por ejemplo, desde Server1 a Server2), dirigir el administrador del servidor de seguridad para asegurarse de que está abierto en ambas direcciones Internet Control Message Protocol (ICMP).

    Nota: Normalmente, se puede determinar si RPC Error leyendo el archivo dtcping.log.

    De forma predeterminada, ICMP es port1. Puede comprobar esto en el archivo de protocolo, que se encuentra en la carpeta %windir%\WinNT\System32\Drivers\. ping Server2 por nombre NetBios desde el Servidor1. Si falla el comando ping, continúe con el paso siguiente. De lo contrario, vaya al paso 8.
  7. ping Server2 por dirección IP de Server1 para asegurarse de que el puerto correcto está abierto para un ping en el servidor de seguridad. Una traza de Monitor de red puede comprobarlo. Si el ping de la dirección IP es correcta y se produce un error en el nombre NetBios, ping, hay un problema de resolución de nombres.

    Nota: Puede utilizar el ipconfig/all comando para recuperar la dirección IP o las direcciones IP de un servidor.

    Una forma rápida de comprobar la resolución de nombres es crear una entrada en el archivo de Hosts del servidor cliente. Éste es el servidor en el que el nombre de NetBios ping falla. Puede modelar su entrada después de la entrada de ejemplo que se incluye en el archivo.

    Nota: Sólo debe realizar una entrada en el archivo Hosts para solucionar problemas. Si la nueva entrada corrige el problema de resolución de nombres, quite la entrada del archivo Hosts y hacer que la entrada que debe en el DNS, el servidor WINS o el archivo LmHosts.

    Existen otras soluciones a problemas de resolución de nombres, pero están fuera del alcance de este artículo.
  8. Si se produce un error en Server2 haciendo ping desde el Servidor1 por nombre NetBios o si Servidor2 haciendo ping desde el Servidor1 por nombre NetBios es correcta pero la prueba de DTCPing muestra la comunicación RPC sigue sin funcionar, es posible que el puerto 135 (el asignador de puntos finales, o EPM) no ha sido abierto de manera bidireccional en el firewall. Compruebe el servidor de seguridad para asegurarse de que el EPM está abierto en ambas direcciones. En este punto, una traza de Monitor de red puede ayudar a determinar con precisión el problema.
  9. Sólo alcanzar este paso si la prueba de DTCPing indica la comunicación RPC funciona en ambas direcciones. Si DTCPing indica que no hay errores en cualquier dirección, la comunicación RPC y MS DTC está fluyendo correctamente.
  10. Si DTCPing indica que ha fallado la comunicación DTC en al menos una dirección (por ejemplo, desde Server1 a Server2), dirigir los administradores de servidor de seguridad para comprobar que los puertos estén abiertos que el desarrollador ha especificado cuando el desarrollador pasó el artículo configuración de MS DTC (consulte el paso 3). Además, algunas reglas pueden aplicarse al servidor de seguridad que prohíbe a las devoluciones de llamada RPC para los servidores de uno (o ambos). Una traza de Monitor de red puede ayudar a solucionar esta situación en particular.
  11. Si DTCPing devuelve un mensaje de error similar al siguiente:
    Inesperado: Mi guid de sesión es igual que el guid del socio
    Compruebe si el servidor actual se ha duplicado o clona de otro servidor. Si es así, busque la clave HKEY_CLASSES_ROOT\CID del registro. Bajo esta clave, puede observar más de un GUID. Busque el GUID cuya clave descripción subyacente es MSDTC. Tenga en cuenta que este GUID también aparece en la ventana de resultados de DTCPing. Si el otro servidor tiene un GUID que es exactamente la misma para MS DTC en su registro, debe crear un nuevo GUID para MS DTC en uno de los registros. Para ello puede utilizar GuidGen.

    Después de agregar este nuevo GUID y todas sus claves subyacentes a HKEY_CLASSES_ROOT\CID, asegúrese de eliminar el GUID antiguo que está reemplazando.

    Si este paso resuelve el problema, se recomienda que lea el siguiente artículo para obtener más información acerca de duplicación (o "fantasma") equipos:para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    162001 no disco duplicadas las versiones instaladas de Windows

Propiedades

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

Comentarios