2010-06-15 5 views
3

Dans mon code, j'essaie d'utiliser une transaction utilisant TransactionScope avec Entity Framework. Alors que dans cette transaction, nous ouvrons une connexion SQL régulière à un serveur et à une base de données séparés. Lorsque le conn.Open() est appelée nous obtenons une erreur :MSDTC et plusieurs bases de données avec Entity Framework

"Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Componet Services Administrative tool."

Cependant, MSDTC est activé et en cours d'exécution sur le serveur.

Répondre

2

1) Juste pour être sûr, mais avez-vous vraiment confirmé que DTC est en cours d'exécution. Cliquez avec le bouton droit de la souris sur "Poste de travail" dans l'écran Services de composants. L'élément de menu supérieur devrait indiquer "Stop DTC".

2) Avez-vous vérifié que votre configuration de MSDTC est la même aux deux extrémités (votre serveur d'application qui initie la connexion à la base de données et à votre serveur de base de données)? Portez une attention particulière aux configurations de sécurité sous l'onglet MSTDC

Bonne chance

+0

Bien que les deux serveurs SQL aient été activés, les configurations de sécurité sous l'onglet MSDTC n'étaient pas activées pour les transactions réseau, une fois que nous avons compris qu'il s'agissait simplement d'ouvrir le port et que cela fonctionnait! –

1

Vous devez activer MS DTC sur le serveur Web et sur le serveur SQL, ainsi qu'activer les transactions à distance sur les deux machines. J'ai traversé les rues pour Windows 2003 et Windows 2008 sur mon blog.

0

Vérifiez également le pare-feu. Une fois, j'ai perdu une journée de travail pour découvrir que l'opération Windows Update, qui avait été exécutée la nuit précédente, restaure les valeurs par défaut de Windows Firewall.

Questions connexes