System.Transactions Namespace

Enthält Klassen, mit denen eigene Transaktionsanwendungen und Ressourcen-Manager geschrieben werden können. Contains classes that allow you to write your own transactional application and resource manager. Insbesondere können Sie eine Transaktion erstellen und an einer Transaktion (lokal oder verteilt) mit einem oder mehreren Teilnehmern teilnehmen. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

Klassen

CommittableTransaction

Beschreibt eine Transaktion, für die ein Commit ausgeführt werden kann.Describes a committable transaction.

DependentTransaction

Beschreibt einen Klon einer Transaktion und gewährleistet, dass kein Commit der Transaktion ausgeführt werden kann, solange die Anwendung bezüglich der Transaktion noch aktiv ist.Describes a clone of a transaction providing guarantee that the transaction cannot be committed until the application comes to rest regarding work on the transaction. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

DistributedTransactionPermission

Die Berechtigung, die von System.Transactions gefordert wird, wenn die Verwaltung einer Transaktion an MSDTC eskaliert wird.The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

DistributedTransactionPermissionAttribute

Ermöglicht, dass Sicherheitsaktionen für DistributedTransactionPermission unter Verwendung deklarativer Sicherheit auf Code angewendet werden.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

Enlistment

Erleichtert die Kommunikation zwischen einem eingetragenen Transaktionsteilnehmer und dem Transaktions-Manager während der letzten Phase der Transaktion.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

Erleichtert die Kommunikation zwischen einem eingetragenen Transaktionsteilnehmer und dem Transaktions-Manager in der Vorbereitungsphase der Transaktion.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

Stellt eine Reihe von Rückrufen bereit, die die Kommunikation zwischen einem für einen Einphasencommit eingetragenen Teilnehmer und dem Transaktions-Manager fördern, wenn die SinglePhaseCommit(SinglePhaseEnlistment)-Benachrichtigung empfangen wird.Provides a set of callbacks that facilitate communication between a participant enlisted for Single Phase Commit and the transaction manager when the SinglePhaseCommit(SinglePhaseEnlistment) notification is received.

SubordinateTransaction

Stellt eine Transaktion dar, die keine Stammtransaktion ist, aber delegiert werden kann.Represents a non-rooted transaction that can be delegated. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

Transaction

Stellt eine Transaktion dar.Represents a transaction.

TransactionAbortedException

Die Ausnahme, die ausgelöst wird, wenn ein Vorgang für eine Transaktion ausgeführt wird, für die bereits ein Rollback ausgeführt wurde, oder wenn versucht wird, einen Commit der Transaktion auszuführen und die Transaktion abgebrochen wird.The exception that is thrown when an operation is attempted on a transaction that has already been rolled back, or an attempt is made to commit the transaction and the transaction aborts.

TransactionEventArgs

Stellt Daten für die folgenden Transaktionsereignisse bereit: DistributedTransactionStarted, TransactionCompleted.Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

Die Ausnahme, die ausgelöst wird, wenn Sie Vorgänge für eine Transaktion ausführen, die keine weiteren Aktionen akzeptieren kann.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

Die Ausnahme, die ausgelöst wird, wenn ein Vorgang für eine Transaktion ausgeführt wird, die zweifelhaft ist, oder wenn versucht wird, die Transaktion auszuführen und die Transaktion den Status InDoubt annimmt.The exception that is thrown when an operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes InDoubt.

TransactionInformation

Stellt zusätzliche Informationen zu einer Transaktion bereit.Provides additional information regarding a transaction.

TransactionInterop

Erleichtert die Interaktion zwischen System.Transactions und Komponenten, die geschrieben wurden, um mit MSDTC, COM+ oder System.EnterpriseServices zu interagieren.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

TransactionManager

Enthält zum Verwalten von Transaktionen verwendete Methoden.Contains methods used for transaction management. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

TransactionManagerCommunicationException

Diese Ausnahme wird ausgelöst, wenn die Kommunikation zwischen Ressourcen-Manager und Transaktions-Manager nicht möglich ist.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

Die Ausnahme, die ausgelöst wird, wenn eine Heraufstufung fehlschlägt.The exception that is thrown when a promotion fails.

TransactionScope

Ändert einen Codeblock in transaktional.Makes a code block transactional. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

Strukturen

TransactionOptions

Enthält zusätzliche Informationen, die das Transaktionsverhalten bestimmen.Contains additional information that specifies transaction behaviors.

Schnittstellen

IDtcTransaction

Beschreibt eine DTC-Transaktion.Describes a DTC transaction.

IEnlistmentNotification

Beschreibt eine Schnittstelle, die ein Ressourcen-Manager implementieren sollte, um beim Eintragen für die Teilnahme Zweiphasencommit-Benachrichtigungsrückrufe für den Transaktions-Manager bereitzustellen.Describes an interface that a resource manager should implement to provide two phase commit notification callbacks for the transaction manager upon enlisting for participation.

IPromotableSinglePhaseNotification

Beschreibt ein Objekt, das als Commit-Delegat für eine nicht verteilte Transaktion in einem Ressourcen-Manager fungiert.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

Stellt eine Transaktion dar, bei der es sich um keine Stammtransaktion handelt, deren Verwaltung jedoch an MSDTC eskaliert werden kann.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

Beschreibt ein Ressourcenobjekt, das die Einphasencommit-Optimierung für die Einbeziehung in eine Transaktion unterstützt.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

Beschreibt eine delegierte Transaktion für eine vorhandene Transaktion, deren Verwaltung bei Bedarf an MSDTC eskaliert werden kann.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

Enumerationen

DependentCloneOption

Steuert, welche Art von abhängiger Transaktion erstellt werden soll.Controls what kind of dependent transaction to create.

EnlistmentOptions

Bestimmt, ob das Objekt während der Vorbereitungsphase eingetragen werden soll.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

Gibt an, wie verteilte Transaktionen mit COM+-Transaktionen interagieren.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

Gibt die Isolationsebene einer Transaktion an.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

Gibt an, ob Transaktionsfluss über Thread Fortsetzungen für TransactionScope aktiviert ist.Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

Stellt zusätzliche Optionen für das Erstellen eines Transaktionsbereichs bereit.Provides additional options for creating a transaction scope.

TransactionStatus

Beschreibt den aktuellen Status einer verteilten Transaktion.Describes the current status of a distributed transaction.

Delegaten

HostCurrentTransactionCallback

Stellt für die Hostumgebung einen Mechanismus zur Verfügung, mit der sie ihr Standardkonzept von Current bereitstellen kann.Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

Stellt die Methode dar, die das TransactionCompleted-Ereignis einer Transaction-Klasse behandelt.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

Stellt die Methode dar, die das DistributedTransactionStarted-Ereignis einer TransactionManager-Klasse behandelt.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

Hinweise

Die System.Transactions -Infrastruktur macht die transaktionale Programmierung auf der gesamten Plattform einfach und effizient, indem Transaktionen unterstützt werden, die in SQL Server, ADO.net, MSMQ und Microsoft Distributed Transaction Coordinator (MSDTC) initiiert werden.The System.Transactions infrastructure makes transactional programming simple and efficient throughout the platform by supporting transactions initiated in SQL Server, ADO.NET, MSMQ, and the Microsoft Distributed Transaction Coordinator (MSDTC). Sie bietet sowohl ein explizites Programmiermodell, das auf der- Transaction Klasse basiert, als auch ein implizites Programmiermodell, das die- TransactionScope Klasse verwendet, in der Transaktionen automatisch von der-Infrastruktur verwaltet werden.It provides both an explicit programming model based on the Transaction class, as well as an implicit programming model using the TransactionScope class, in which transactions are automatically managed by the infrastructure. Es wird dringend empfohlen, das einfachere implizite Modell für die Entwicklung zu verwenden.It is highly recommended that you use the easier implicit model for development. Informationen zu den ersten Schritten finden Sie im Thema Implementieren einer impliziten Transaktion mit Transaktions Bereich .To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. Weitere Informationen zum Schreiben von transaktionalen Anwendungen finden Sie unter Schreiben einer TransaktionsAnwendung.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions bietet auch Typen, mit denen Sie einen Ressourcen-Manager implementieren können.System.Transactions also provides types for you to implement a resource manager. Der für die Infrastruktur einheitliche Transaktions-Manager System.Transactions ermöglicht es, dass flüchtige Ressourcen oder eine einzelne dauerhafte Ressourcen Eintragung einen effizienten Commit oder Rollback ausführen.The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. Weitere Informationen zum Implementieren eines Ressourcen-Managers finden Sie unter Implementieren einer Ressourcen-Manager.For more information on implementing a resource manager, see Implementing A Resource Manager.

Der Transaktions-Manager eskaliert außerdem transparent lokale Transaktionen zu verteilten Transaktionen, indem er einen Datenträger basierten Transaktions-Manager wie den DTC koordiniert, wenn sich ein zusätzlicher dauerhafter Ressourcen-Manager bei einer Transaktion einträgt.The transaction manager also transparently escalates local transactions to distributed transactions by coordinating through a disk-based transaction manager like the DTC, when an additional durable resource manager enlists itself with a transaction. Es gibt zwei grundlegende Methoden, mit der System.Transactions-Infrastruktur eine verbesserte Leistung zu erreichen.There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • Dynamische Eskalation. Dies bedeutet, dass die System.Transactions Infrastruktur nur den MSDTC einbezieht, wenn Sie tatsächlich für eine Transaktion erforderlich ist.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. Dieser Bereich wird ausführlich im Thema zur Eskalation der Transaktions Verwaltung behandelt.This area is covered in depth in the Transaction Management Escalation topic.

  • Erweiterbare Eintragungen: Ermöglichen es einer Ressource (z.B. einer Datenbank), Eigentümer der Transaktion zu werden, wenn sie die einzige Entität ist, die an der Transaktion teilnimmt.Promotable Enlistments, which allows a resource, such as a database, to take ownership of the transaction if it is the only entity participating in the transaction. Bei Bedarf System.Transactions kann die Infrastruktur die Verwaltung der Transaktion weiterhin auf MSDTC ausweiten.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. Auch dies reduziert die Zahl der Fälle, in denen MSDTC verwendet wird.This further reduces the chance of using the MSDTC. Dieser Bereich wird ausführlich im Thema Optimierung mit Einphasencommit und heraufstufbarer Einphasenbenachrichtigung behandelt.This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions definiert drei Vertrauens Ebenen, die den Zugriff auf die Typen von Ressourcen einschränken, die Sie verfügbar macht.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. Insbesondere kann die System. Transactions -Assembly von teilweise vertrauenswürdigem Code aufgerufen werden, da Sie mit dem- AllowPartiallyTrustedCallers Attribut (APTCA) markiert ist.Specifically, the System.Transactions assembly can be called by partially trusted code as it has been marked with the AllowPartiallyTrustedCallers attribute (APTCA). Dieses Attribut entfernt im Wesentlichen die implizite LinkDemand für den FullTrust-Berechtigungssatz, die andernfalls für jede öffentlich zugängliche Methode jeden Typs eingerichtet ist.This attribute essentially removes the implicit LinkDemand for the FullTrust permission set that is otherwise automatically placed on each publicly accessible method in each type. Für einige Typen und Member sind allerdings weiterhin stärkere Berechtigungen erforderlich.However, some types and members still require stronger permissions.

Im folgenden finden Sie eine Liste von Typen und Membern, die von teilweise vertrauenswürdigem Code nicht aufgerufen werden können, da Sie mit dem folgenden deklarativen Sicherheits Attribut ergänzt werden:The following is a list of types and members that are not callable by partially trusted code because they are decorated with the following declarative security attribute:

PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")

System. Transactions. Transaction. Eintragung DurableSystem.Transactions.Transaction.EnlistDurable

System. Transactions. Transaction. endlistpromotablesinglephaseSystem.Transactions.Transaction.EnlistPromotableSinglePhase

System. Transactions. transaktioninteropSystem.Transactions.TransactionInterop

System. Transactions. transaktionmanager. distributedtransaktionstartedSystem.Transactions.TransactionManager.DistributedTransactionStarted

System. Transactions. transaktionmanager. hostcurrenttransaktioncallbackSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System. Transactions. transaktionmanager. ReenlistSystem.Transactions.TransactionManager.Reenlist

System. Transactions. transaktionmanager. wiederherstellungcompleteSystem.Transactions.TransactionManager.RecoveryComplete

System. Transactions. transaktionscope. transaktionscope (System. Transactions. Transaction, System. TimeSpan, System. Transactions. EnterpriseServicesInteropOption)System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)

M:System.Transactions.TransactionScope.TransactionScope (System. Transactions. transaktionscopeoption, System. Transactions. transaktionoptions, System. Transactions. EnterpriseServicesInteropOption)M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

Weitere Informationen zu den verschiedenen Vertrauens Ebenen finden Sie unter Sicherheits Vertrauensstellungen beim Zugriff auf Ressourcen.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Grundlegende Entwicklungstechnologien \datenaccess\transaktionsverarbeitung Core Development Technologies\Data Access\Transaction Processing\

Weitere Informationen zur Verwendung des- System.Transactions Namespace finden Sie in der konzeptionellen Dokumentation Transaktionsverarbeitungunter dem Abschnitt "Core Development Technologies\Data Access\Transaction Processing \ " in der-Dokumentation.For more information on how to use the System.Transactions namespace, you can consult the conceptual documentation Transaction Processing, located under the "Core Development Technologies\Data Access\Transaction Processing\" section in the documentation. In den folgenden Themen finden Sie weitere Informationen.Specifically, you can find more information in the following topics.

Von System. Transactions bereitgestellte FunktionenFeatures Provided By System.Transactions

Implementieren eines Ressourcen-ManagersImplementing A Resource Manager