Malheureusement, MSDTC peut vraiment être un ours à mettre en place. Une fois que vous l'avez, cependant, cela fonctionne magnifiquement. Les problèmes ne surviennent que parce que la configuration réseau de tout le monde est juste un peu différente.
Il semble que votre service MSDTC ne soit peut-être pas activé sur votre ordinateur client ou, peut-être, sur votre serveur.
est ici un guide pour permettre sur Windows 7: ->http://www.thereforesystems.com/turn-on-msdtc-windows-7/
Vous aurez également besoin de l'activer sur votre serveur DB: ->http://support.microsoft.com/kb/817064
Un moyen facile de tester si cela fonctionne sans avoir à contacter vos administrateurs de serveur est de mettre en place deux bases de données locales différentes sur votre boîte de dev. Ensuite, essayez de gérer une transaction entre les deux connexions de base de données. En supposant que vous avez correctement configuré msdtc, tout devrait fonctionner correctement.
Un dernier point est que vous pouvez regarder dans rendre votre vie un peu plus facile en faisant référence à la bibliothèque System.Transactions et en utilisant votre code de transaction comme ceci:
using (TransactionScope scope = new TransactionScope())
{
/* Perform transactional work here */
SomeMethod();
scope.Complete();
}
Notez qu'aucun rollback explicite est nécessaire. Si quelque chose se bloque dans l'instruction using, ou si vous quittez l'instruction using avant de cliquer sur .Complete(), votre transaction sera annulée. Pour plus d'informations sur TransactionScope, voir ici: ->http://msdn.microsoft.com/en-us/library/ms172152(VS.90).aspx
Avez-vous vraiment besoin de msdtc? Avec combien de serveurs de base de données interagissez-vous dans une transaction? – Pandincus