me dieron el error de comunicación fallado al tratar de establecer DTC y MSMQ en un clúster. En mi caso, el error subyacente fue "Se quedó sin memoria". Pude enviar mensajes transaccionales desde el clúster a otro servidor, pero no desde ese servidor al clúster. Mi servicio tiraría esta excepción:
System.Transactions.TransactionAbortedException: The transaction has aborted.
---> System.Transactions.TransactionManagerCommunicationException: Communication
with the underlying transaction manager has failed. --->
System.Runtime.InteropServices.COMException: Ran out of memory (Exception from HRESULT: 0x80000002)
Este artículo tenía la solución muy oscura: http://www.nervousadmin.com/category/microsoft/windows/dtc/
En resumen:
No es un GUID en el registro para el ClusterDefaultResource clave en HKLM \ Cluster \ ResourceTypes \ Coordinador de transacciones distribuidas que debe alinearse con el argumento guid en la ruta del servicio DTC hacia el ejecutable.
Otro síntoma de este problema es que se obtendría un error de falta de memoria si intenta acceder a las propiedades de DTC a través de la consola de administración de Servicios de componentes. Busque en el árbol de la consola en Servicios de componentes/Computadoras/Mi PC/Coordinador de transacciones distribuidas y haga clic derecho en cada uno de los DTC enumerados allí. Esto arrojará el error si tus guids no están alineados.
- Abra services.msc. Busque el Coordinador de transacciones distribuidas (si hay dos, está buscando uno con el guid en su nombre)
- Abra las propiedades de ese DTC. Copie el guid de la 'ruta al ejecutable'
- Abrir regedit. Buscar HKLM \ Cluster \ ResourceTypes \ Distributed Transaction Coordinator
- Compare el valor de ClusterDefaultResource con el guid que ha copiado. Si son diferentes, el próximo paso debería arreglar las cosas. Si no, esta no es tu respuesta.
- Realice una copia de seguridad del valor actual. Edite la propiedad ClusterDefaultResource: pegue la guía que copió de las propiedades de los servicios Dcs .msc. Tendrá que hacer esto en cada nodo de su clúster.
- Con suerte, esto ha resuelto su problema.
¿Encendiste el cortafuegos? –
¿Se puede acceder a las dos computadoras por nombre de NetBIOS (su nombre de computadora)? Solo prueba un ping. De lo contrario, ejecute DTCPing. –