Bonjour,
j'ai développé une WebMethod qui utilise une transaction:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 using (TransactionScope scope = new TransactionScope()) { SqlConnection connection = null; SqlCommand command = null; [..] // Traitement try { // Appel d'une procédure stockée utilisant une transaction command.ExecuteNonQuery(); } catch (Exception ex) { log.Error(ex.Message); throw new Exception("Erreur de sauvegarde dans la base de données.", ex); } trs.Complete(); [..] // Traitement }
Comme vous le voyez cette WebMethod fait appel à une procédure stockée qui utilise aussi une transaction.
Cette procédure stockée développée dans une base de données sous SQL Server 2005 est définie ci-dessous:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE PROCEDURE [dbo].[MyProcedure] ( -- Liste des paramètres ) AS SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION MyTransaction -- Traitement COMMIT TRANSACTION MyTransaction
Il arrive que l'exception avec le message suivant soit lancée par la base de données:
Que dois-je fais d'après vous pour corriger ce problème ?La transaction distribuée est terminée. Inscrivez cette session, soit dans une nouvelle transaction, soit dans une transaction NULL.
Merci d'avance,
Zoax






Répondre avec citation
Partager