2010-05-18 4 views
0

J'ai une application Windows Forms Visual Studio 2010 dans laquelle je démarre une transaction en utilisant la classe TransactionScope. Je reçois ensuite un message d'une file d'attente de messages Sql Server Broker Services, qui fonctionne correctement. Je tente ensuite d'appeler une procédure stockée de la même base de données avec un appel à ma couche d'accès aux données qui est un jeu de données Visual Studio (fichier xsd). Lorsque j'effectue ce deuxième appel à la base de données, le message d'erreur suivant s'affiche:Windows 7 - Activer l'accès DTC réseau

Le gestionnaire de transactions MSDTC n'a pas pu retirer la transaction du gestionnaire de transactions source en raison de problèmes de communication. Les causes possibles sont: un pare-feu est présent et aucune exception pour le processus MSDTC, les deux machines ne peuvent pas se trouver par leurs noms NetBIOS ou la prise en charge des transactions réseau n'est pas activée pour l'un des deux gestionnaires de transactions. (Exception de HRESULT: 0x8004D02B).

J'ai vu plusieurs articles sur le Web qui traitent de l'activation de l'accès DTC via dcomcnfg.exe et de la possibilité pour DTC de communiquer via le pare-feu Windows. J'ai fait ces choses, et j'ai toujours ce problème. Je sais que notre serveur de base de données distant est configuré pour activer l'accès DTC, car nous utilisons des transactions similaires dans d'autres projets créés avec Visual Studio 2008 sous Windows XP et Vista. Je pense qu'il y a quelque chose de spécifique à propos de Windows 7 et Visual Studio 2010 à l'origine de ce problème, mais je n'ai pas réussi à savoir de quoi il s'agit. Quelqu'un peut-il aider avec ce problème?

Je viens de voir un message sur le web d'un autre programmeur ayant ce problème (http://www.pcreview.co.uk/forums/thread-3977150.php), il dit qu'il fonctionne très bien sur Windows 7 - x86, mais obtient cette erreur sur Windows 7 - 64 bits. Je cours la version x64 de Windows 7, est-ce que quelqu'un sait s'il y a des problèmes avec MSDTC sur la version de Windows 7 - 64 bits?

Répondre

1

Il s'est avéré que je laissais une connexion de base de données ouverte dans mon appel Receive à SQL Server Service Broker, puis essayait de faire une nouvelle connexion à ma couche d'accès aux données. Cela causait le problème, le correctif s'est avéré être de fermer la première connexion avant d'ouvrir la seconde.

+0

Une connexion SQL ouverte était également à l'origine de ce problème. – TroyC