Transactions dans les services Web XML ASP.NET

Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation.

La prise en charge des transactions pour les services Web exploite la prise en charge trouvée dans le Common Language Runtime, basée sur le même modèle de transaction distribuée que l'on trouve dans Microsoft Transaction Server (MTS) et les services COM+. Le modèle se base sur la décision déclarative de la participation d'un objet à une transaction, plutôt que sur l'écriture de code spécifique pour gérer la validation et l'annulation d'une transaction. Vous pouvez déclarer le comportement transactionnel d'un service Web créé à l'aide d'ASP.NET en définissant la propriété TransactionOption de l'attribut WebMethod appliqué à une méthode de service Web. Pour obtenir un exemple, consultez Comment : participer aux transactions dans les services Web créés à l'aide d'ASP.NET.

Si une exception est levée pendant l'exécution d'une méthode de service Web, la transaction est automatiquement abandonnée ; à l'inverse, si aucune exception ne se produit, la transaction est automatiquement validée.

La propriété TransactionOption de l'attribut WebMethodAttribute spécifie comment une méthode de service Web participe à une transaction. Bien que ce niveau déclaratif représente la logique d'une transaction, c'est une étape supprimée de la transaction physique. Une transaction physique se produit lorsqu'un objet transactionnel accède à une ressource de données, telle qu'une base de données ou file d'attente de messages. La transaction associée à l'objet est transmise automatiquement au gestionnaire de ressources approprié. Un fournisseur de données .NET Framework, tel que le fournisseur de données .NET Framework pour SQL Server ou le fournisseur de données .NET Framework pour OLE DB, vérifie la transaction dans le contexte de l'objet et enrôle dans la transaction via le Coordinateur de transactions distribuées (DTC). La transaction entière se produit automatiquement.

Les méthodes de service Web peuvent participer à une transaction uniquement comme racine d'une nouvelle transaction. Comme racine d'une nouvelle transaction, toutes les interactions avec gestionnaires des ressources, tels que les serveurs exécutant Microsoft SQL Server, Microsoft Message Queuing (également appelé MSMQ) et Microsoft Host Integration Server, maintiennent les propriétés ACID requises pour exécuter des applications distribuées fiables. Les méthodes de service Web Service qui appellent d'autres méthodes de service Web participent à des transactions différentes, parce que les transactions ne sont pas transmises via des méthodes de service Web.

85f292h1.note(fr-fr,VS.100).gifRemarque :
Lorsque la méthode qui implémente la méthode de service Web n'est pas appelée en raison d'une demande Internet vers le fichier .asmx dans lequel elle réside ou auquel elle est associée, la valeur de la propriété TransactionOption n'a aucun effet. Cela peut se produire lorsque la classe dans laquelle la méthode réside est un membre d'un projet dans Visual Studio .NET et que le service Web n'est pas appelé à l'aide d'une classe proxy. Dans Visual Studio .NET, une classe proxy est générée lorsqu'une référence Web est ajoutée.

Voir aussi

Tâches

Comment : participer aux transactions dans les services Web créés à l'aide d'ASP.NET

Référence

TransactionOption Enumeration
WebMethodAttribute.TransactionOption Property

Autres ressources

Transaction Processing
Services Web XML utilisant ASP.NET