Est-ce même une question valable? J'ai une application Windows .NET qui utilise MSTDC et qui lève une exception:
System.Transactions.TransactionManagerCommunicationException: l'accès au réseau pour Distributed Transaction Manager (MSDTC) a été désactivé. Veuillez activer DTC pour l'accès réseau dans la configuration de sécurité pour MSDTC à l'aide de l'outil d'administration des services de composants ---> System.Runtime.InteropServices.COMException (0x8004D024): le gestionnaire de transactions a désactivé sa prise en charge des transactions distantes / réseau. (Exception de HRESULT: 0x8004D024) à System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction (UInt32 propgationTokenSize, Byte [] propgationToken, IntPtr managedIdentifier, Guid & transactionIdentifier, OletxTransactionIsolationLevel & isolationShransaction
J'ai suivi le guide Kbalertz pour activer MSDTC sur le PC sur lequel l'application est installée, mais l'erreur persiste.
Je me demandais si c'était un problème de base de données? Si oui, comment puis-je le résoudre?
la source
Réponses:
Utilisez ceci pour Windows Server 2008 r2 et Windows Server 2012 R2
Cliquez sur Démarrer , sur Exécuter , tapez dcomcnfg , puis cliquez sur OK pour ouvrir les services de composants .
Dans l'arborescence de la console, cliquez pour développer Services de composants , cliquez pour développer Ordinateurs , cliquez pour développer Poste de travail , cliquez pour développer Distributed Transaction Coordinator , puis cliquez sur DTC local .
Cliquez avec le bouton droit sur DTC local et cliquez sur Propriétés pour afficher la boîte de dialogue Propriétés DTC local .
Cliquez sur l' onglet Sécurité .
Cochez la case "Accès DTC réseau" .
Enfin, cochez les cases "Autoriser les entrées" et "Autoriser les sorties" .
Cliquez sur Appliquer , OK .
Un message apparaîtra sur le redémarrage du service.
Cliquez sur OK et c'est tout.
Référence: https://msdn.microsoft.com/en-us/library/dd327979.aspx
Remarque: Parfois, le pare-feu réseau de l'ordinateur local ou du serveur peut interrompre votre connexion. Assurez-vous donc de créer des règles pour "Autoriser les connexions entrantes" et "Autoriser les connexions sortantes" pour
C:\Windows\System32\msdtc.exe
la source
msdtc.exe
est est:c:\windows\system32\msdtc.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
. Plus d'informations sur les propriétés ici .Avez-vous même besoin de MSDTC? L'escalade que vous rencontrez est souvent causée par la création de plusieurs connexions dans un seul TransactionScope.
Si vous en avez besoin, vous devez l'activer comme indiqué dans le message d'erreur. Sur XP:
la source
J'ai trouvé que la meilleure façon de déboguer est d'utiliser l'outil Microsoft appelé DTCPing
J'ai eu des problèmes de tarifs dans notre ancien réseau d'entreprise et j'ai quelques conseils:
D'après mon expérience, si le DTCPing est capable de configurer une connexion DTC initiée à partir du client et initiée à partir du serveur, vos transactions ne sont plus le problème.
la source
Vous pouvez également voir ici comment activer MSDTC à partir des services.msc du Panneau de configuration.
la source
MSDTC doit être activé sur les deux systèmes, serveur et client.
Assurez-vous également qu'il n'y a pas de pare-feu entre les systèmes qui bloque RPC.
DTCTest est une belle application litt qui vous aide à résoudre tout autre problème.
la source
@Dan,
Uniquement les transactions distribuées - Celles qui impliquent plus d'une connexion unique. Assurez-vous doublement que vous n'ouvrez qu'une seule connexion au sein de la transaction et cela n'augmentera pas - les performances seront également bien meilleures.
la source