J'essaie de configurer une transaction simple pour mes actions Linq-to-SQL par rapport à ma base de données Sql 2000. En utilisant TransactionScope il ressemble à ceci:Erreur TransactionScope contre Sql Server 2000 - Le gestionnaire de transactions partenaire a désactivé sa prise en charge pour les transactions réseau/distant
using (TransactionScope transaction = new TransactionScope())
{
try
{
Store.DBDataContext dc = new Store.DBDataContext();
Store.Product product = GetProduct("foo");
dc.InsertOnSubmit(product);
dc.SubmitChanges();
transaction.Complete();
}
catch (Exception ex)
{
throw ex;
}
}
Cependant, je continue à obtenir l'erreur suivante:
Le gestionnaire de transactions partenaire a désactivé son soutien pour les transactions à distance/réseau. (Exception de HRESULT: 0x8004D025)
Mais, si je configure la transaction en utilisant une transaction traditionnelle, cela fonctionne correctement. Donc, cela fonctionne très bien:
Store.DBDataContext dc = new Store.DBDataContext();
try
{
dc.Connection.Open();
dc.Transaction = dc.Connection.BeginTransaction();
Store.Product product = GetProduct("foo");
dc.InsertOnSubmit(product);
dc.SubmitChanges();
dc.Transaction.Commit();
}
catch (Exception ex)
{
dc.Transaction.Rollback();
throw ex;
}
finally
{
dc.Connection.Close();
dc.Transaction = null;
}
Je me demande si le TransactionScope fait quelque chose de différent sous les couvertures que ma deuxième mise en œuvre. Si non, qu'est-ce que je perds en n'utilisant pas TransactionScope? De plus, toute indication sur ce qui cause l'erreur serait également bonne. J'ai confirmé que MSDTC s'exécute dans le serveur sql et sur mon ordinateur client.
Le DatabaseTransactionAdapter référencé dans le poste Florin Lazar a fait l'affaire. Je posterai mon code d'implémentation en réponse. –
Les instructions pour configurer le MSDTC ne semblent pas s'appliquer à Windows 7 Je n'ai qu'une seule option sous l'onglet MSDTC: utiliser le coordinateur local ou spécifier l'hôte distant à utiliser. – Myster
J'ai trouvé des instructions pour trouver ces paramètres sur Windows 7 et 2008! Regardez ici: http://msdn.microsoft.com/en-us/library/aa561924(BTS.20).aspx – skb