2011-08-17 15 views
8

La herramienta DTCPing dice que todo debería estar bien. La excepción es real:Dtcping pasa la prueba pero todavía tiene una comunicación con el administrador de transacciones subyacente ha fallado

System.Transactions.TransactionManagerCommunicationException: 

La comunicación con el administrador de transacciones subyacente ha fallado. ---> System.Runtime.InteropServices.COMException: la transacción MSDTC administrador no pudo enviar la transacción al administrador de transacciones de destino debido a problemas de comunicación. Las posibles causas son: un firewall está presente y no tiene una excepción para el proceso MSDTC, las dos máquinas no se pueden encontrar por sus nombres NetBIOS, o el soporte para transacciones de red no está habilitado para una de las dos gerentes de transacciones. (Excepción de HRESULT: 0x8004D02A)

El servicio se ejecuta en una máquina virtual. Otros servidores pueden ejecutar transacciones distribuidas, por lo que el cuadro de DB está configurado correctamente.

Respuesta

3

Hay un buen artículo sobre este tema aquí: Troubleshooting Problems with MSDTC. Originalmente fue escrito para BizTalk Server pero también se aplica en otro servidor.

Dado que está ejecutando una VPC, es posible que el DTC comparta algunos identificadores con otra máquina en la misma red. Consulte el capítulo "Asegúrese de que MSDTC tiene asignado un valor CID único" en este artículo (consulte también http://blogs.msdn.com/b/johnlee/archive/2008/09/09/msdtc-on-virtual-machines.aspx), aunque creo que DTCPing debería informarle al respecto ... También puede probar msdtc -uninstall y msdtc -install para solucionarlo.

También debe verificar si su servidor no está usando alguna VPN o tecnología de cifrado. Recuerdo que esto puede causar problemas.

2

Alguien ya ha mencionado ID únicos, asegúrese de hacerlo antes de hacer cualquier otra cosa, he visto a personas hacer explotar MUCHO tiempo por otras rutas solo para descubrir que ese era el único problema.

Dicho esto, he encontrado que una herramienta llamada DTCTester es más útil que DTCPing. http://support.microsoft.com/kb/293799

Es un poco más difícil de usar que DTCPing, pero también se prueba mucho más cerca de lo que normalmente está buscando hacer, lo que le da un resultado de prueba más limpio.

* Asegúrese de que todos los posibles software de cortafuegos/filtrado está desactivado y/o inexistente *

No puedo expresar lo suficiente, una vez pasé casi 90 minutos tratando de convencer a un cusotmer que su El software VPN actuaba como un firewall personal y bloqueaba los zócalos entrantes. Una vez que lo deshabilitó, los problemas desaparecieron. (el software era Cisco VPN Client, el ajuste era "Stateful Firewall (Always On)" - sí, está SIEMPRE activado :))

Recuerde que DTC es tráfico bidireccional, por lo que esto tiene que ser cierto en ambos y también debe asegurarse de que ambas máquinas tengan habilitada la opción "Habilitar el acceso a DTC de red." También me he dado cuenta de que asegurarme de que las configuraciones de DTC en ambos cuadros estén sincronizadas también garantiza una interacción sólida también.

Cuestiones relacionadas