¿Es esta incluso una pregunta válida? Tengo una aplicación de Windows .NET que usa MSTDC y está lanzando una excepción:
System.Transactions.TransactionManagerCommunicationException: se ha deshabilitado el acceso a la red para el Administrador de transacciones distribuidas (MSDTC). Habilite DTC para el acceso a la red en la configuración de seguridad de MSDTC utilizando la herramienta administrativa de servicios de componentes ---> System.Runtime.InteropServices.COMException (0x8004D024): el administrador de transacciones ha deshabilitado su soporte para transacciones remotas / de red. (Excepción de HRESULT: 0x8004D024) en System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction (UInt32 propgationTokenSize, Byte [] propgationToken, IntPtr managedIdentifier, Guid & transactionIdentifier, OletxTransactionIsolationShimevelevel ...
Seguí la guía de Kbalertz para habilitar MSDTC en la PC en la que está instalada la aplicación, pero el error persiste.
Me preguntaba si esto era un problema de base de datos. Si es así, ¿cómo puedo solucionarlo?
fuente
Respuestas:
Use esto para Windows Server 2008 r2 y Windows Server 2012 R2
Haga clic en Inicio , haga clic en Ejecutar , escriba dcomcnfg y luego haga clic en Aceptar para abrir Servicios de componentes .
En el árbol de la consola, haga clic para expandir Servicios de componentes , haga clic para expandir Equipos , haga clic para expandir Mi PC , haga clic para expandir Coordinador de transacciones distribuidas y luego haga clic en DTC local .
Haga clic con el botón derecho en Local DTC y haga clic en Propiedades para mostrar el cuadro de diálogo Propiedades de DTC local .
Haga clic en la pestaña Seguridad .
Marque la casilla de verificación "Acceso a DTC de red" .
Por último, marque las casillas de verificación "Permitir entrantes" y "Permitir salientes" .
Haga clic en Aplicar , Aceptar .
Aparecerá un mensaje sobre el reinicio del servicio.
Haga clic en Aceptar y eso es todo.
Referencia: https://msdn.microsoft.com/en-us/library/dd327979.aspx
Nota: A veces, el firewall de la red en la computadora local o el servidor podría interrumpir su conexión, así que asegúrese de crear reglas para "Permitir conexiones entrantes" y "Permitir salientes" para
C:\Windows\System32\msdtc.exe
fuente
msdtc.exe
es:c:\windows\system32\msdtc.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
. Más información sobre las propiedades aquí .¿Incluso necesita MSDTC? La escalada que experimenta a menudo se debe a la creación de múltiples conexiones dentro de un solo TransactionScope.
Si lo necesita, debe habilitarlo como se describe en el mensaje de error. En XP:
fuente
Descubrí que la mejor manera de depurar es usar la herramienta de microsoft llamada DTCPing
He tenido problemas con las tarifas en la red de nuestra antigua empresa y tengo algunos consejos:
En mi experiencia, si el DTCPing puede configurar una conexión DTC iniciada desde el cliente e iniciada desde el servidor, sus transacciones ya no son el problema.
fuente
También puede ver aquí cómo activar MSDTC desde services.msc del Panel de control.
fuente
MSDTC debe estar habilitado en ambos sistemas, tanto el servidor como el cliente.
Además, asegúrese de que no haya un firewall entre los sistemas que bloquee RPC.
DTCTest es una pequeña aplicación que te ayuda a solucionar cualquier otro problema.
fuente
@Dan,
Solo transacciones distribuidas: aquellas que involucran más de una conexión. Asegúrese doblemente de estar abriendo una única conexión dentro de la transacción y no escalará; el rendimiento también será mucho mejor.
fuente