Actualmente en una operación del proyecto que estamos realizando, utilizamos transacciones distribuidas, todo bien hasta que llego el momento de probar todo y fue ahí cuando ouchh!
Se ha deshabilitado el acceso de red para el administrador de transacciones distribuidas (MSDTC). Habilite DTC para el acceso de red en la configuración de seguridad de MSDTC utilizando la herramienta administrativa Servicios de componentes. ---> System.Runtime.InteropServices.COMException (0x8004D024): El administrador de transacción ha deshabilitado su soporte para transacciones de red o remotas. (Excepción de HRESULT: 0x8004D024)
en System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid&
Pero bueno esto no es nada del otro mundo, lo que sucede es que para poder trabajar con transacciones distribuidas debemos habilitar el Coordinador de Transacciones que viene con Windows, en este post trataré de explicar como habilitarlo en Windows Vista, en XP difiere un poco.
En mi caso el entorno de ejecución de la aplicación es en Red, es decir el servidor de BD se encuentra en otro equipo.
Como habilitar el Coordinador de Transacciones en Windows Vista
En XP nos podemos ir a herramientas administrativas y entrar al servicio de componentes y habilitarlo, en este caso, lo estaba buscando en herramientas administrativas y no estaba por ningún lado, así que toca acceder vía Ejecutar:
En ejecutar escribimos "comexp.msc" y automáticamente se abrirá la consola de servicio de componentes de Windows Vista.
Una vez dentro de la consola desplegamos Servicios de componentes->Equipos->Mi PC->Coordinador de Transacciones distribuidas
Ahí tenemos a DTC (Distributed Transaction Coordinator), con clic derecho nos vamos a sus propiedades y ahí habilitamos las opciones que deseemos:
Luego nos vamos a la pestaña seguridad y habilitamos los propiedades correspondientes, de acuerdo al entorno en el que vamos a trabajar.
En mi caso he habilitado todo sin ninguna restricción para poder hacer las pruebas, pero en un entorno de producción dependerá mucho de las opciones que se tenga en cuanto al acceso a red y privilegios de usuarios.
Nos saldrá un mensaje que se ha reiniciado el servicio y ya esto todo listo. Vale comentar que es necesario que el servicio del coordinador de transacciones este iniciado, para ello pueden ir a la consola de servicios y verificarlo.
De cierta manera ya tenemos configurado el Coordinador de Transacciones, ahora solo falta darle acceso a través del firewall.
Con esto ya podemos trabajar tranquilamente con nuestras transacciones. Adicionalmente pueden revisar este articulo que trata sobre
Cómo habilitar el seguimiento de diagnóstico para MS DTC en un equipo en función de Windows Vista
Saludos!
Leer post completo