System.Transactions Przestrzeń nazw

Zawiera klasy, które umożliwiają pisanie własnych transakcyjnych aplikacji i zasobów. Contains classes that allow you to write your own transactional application and resource manager. W tym celu można utworzyć transakcję (lokalną lub dystrybuowaną) i wziąć udział w niej z jednym lub wieloma uczestnikami. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

Klasy

CommittableTransaction

Opisuje transakcję zatwierdzania.Describes a committable transaction.

DependentTransaction

Opisuje klon transakcji zapewniający gwarancję, że nie można zatwierdzić transakcji, dopóki aplikacja nie będzie mogła zostać zamieszczona w odniesieniu do pracy w transakcji.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. Klasa ta nie może być dziedziczona.This class cannot be inherited.

DistributedTransactionPermission

Uprawnienie, które jest żądanie, System.Transactions gdy zarządzanie transakcjami jest eskalacją do usługi MSDTC.The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. Klasa ta nie może być dziedziczona.This class cannot be inherited.

DistributedTransactionPermissionAttribute

Zezwala na stosowanie akcji zabezpieczeń do DistributedTransactionPermission kodu przy użyciu zabezpieczeń deklaratywnych.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. Klasa ta nie może być dziedziczona.This class cannot be inherited.

Enlistment

Ułatwia komunikację między Uczestnikiem transakcji zarejestrowanymi a menedżerem transakcji w końcowej fazie transakcji.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

Ułatwia komunikację między Uczestnikiem transakcji zarejestrowanymi a menedżerem transakcji w fazie przygotowywania transakcji.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

Zawiera zestaw wywołań zwrotnych, które ułatwiają komunikację między Uczestnikiem zarejestrowanym w ramach zatwierdzania jednofazowego a menedżerem transakcji po SinglePhaseCommit(SinglePhaseEnlistment) odebraniu powiadomienia.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

Reprezentuje nieodblokowaną transakcję, którą można delegować.Represents a non-rooted transaction that can be delegated. Klasa ta nie może być dziedziczona.This class cannot be inherited.

Transaction

Reprezentuje transakcję.Represents a transaction.

TransactionAbortedException

Wyjątek, który jest generowany, gdy podjęto próbę wykonania operacji w transakcji, która została już wycofana, lub podjęto próbę zatwierdzenia transakcji i przerwania transakcji.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

Zawiera dane dla następujących zdarzeń transakcji: DistributedTransactionStarted , TransactionCompleted .Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

Wyjątek, który jest generowany podczas próby wykonania pracy w transakcji, która nie może akceptować nowej pracy.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

Wyjątek, który jest generowany, gdy podjęto próbę wykonania operacji w wątpliwej transakcji lub podjęto próbę zatwierdzenia transakcji, a transakcja stanie się niewątpliwa.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

Zawiera dodatkowe informacje dotyczące transakcji.Provides additional information regarding a transaction.

TransactionInterop

Ułatwia interakcję między programami System.Transactions i składnikami, które były wcześniej zapisywane w celu interakcji z usługami MSDTC, com+ lub System.EnterpriseServices .Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Klasa ta nie może być dziedziczona.This class cannot be inherited.

TransactionManager

Zawiera metody używane do zarządzania transakcjami.Contains methods used for transaction management. Klasa ta nie może być dziedziczona.This class cannot be inherited.

TransactionManagerCommunicationException

Wyjątek, który jest generowany, gdy Menedżer zasobów nie może komunikować się z menedżerem transakcji.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

Wyjątek, który jest generowany, gdy podwyższanie poziomu zakończy się niepowodzeniem.The exception that is thrown when a promotion fails.

TransactionScope

Sprawia, że blok kodu jest transakcyjny.Makes a code block transactional. Klasa ta nie może być dziedziczona.This class cannot be inherited.

Struktury

TransactionOptions

Zawiera dodatkowe informacje, które określają zachowania transakcji.Contains additional information that specifies transaction behaviors.

Interfejsy

IDtcTransaction

Opisuje transakcję usługi DTC.Describes a DTC transaction.

IEnlistmentNotification

Opisuje interfejs, który powinien być zaimplementowany przez Menedżera zasobów, aby zapewnić dwa wywołania zwrotne powiadomień o zatwierdzeniu przez Menedżera transakcji w przypadku rejestracji w celu uczestnictwa.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

Opisuje obiekt, który działa jako delegat zatwierdzania dla transakcji nierozproszonej wewnętrznej dla Menedżera zasobów.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

Reprezentuje transakcję, która nie jest transakcją główną, ale może być eskalacją do zarządzania przez MSDTC.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

Opisuje obiekt zasobu, który obsługuje optymalizację zatwierdzania pojedynczej fazy, aby uczestniczyć w transakcji.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

Opisuje delegowaną transakcję dla istniejącej transakcji, którą można eskalować, aby była zarządzana przez usługę MSDTC w razie potrzeby.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

Wyliczenia

DependentCloneOption

Kontroluje Rodzaj transakcji zależnej do utworzenia.Controls what kind of dependent transaction to create.

EnlistmentOptions

Określa, czy obiekt ma być zarejestrowany w fazie przygotowywania.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

Określa, jak transakcje rozproszone współdziałają z transakcjami modelu COM+.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

Określa poziom izolacji transakcji.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

Określa, czy przepływ transakcji między kontynuacjami wątków jest włączony dla programu TransactionScope .Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

Zapewnia dodatkowe opcje tworzenia zakresu transakcji.Provides additional options for creating a transaction scope.

TransactionStatus

Opisuje bieżący stan transakcji rozproszonej.Describes the current status of a distributed transaction.

Delegaci

HostCurrentTransactionCallback

Zapewnia mechanizm dla środowiska hostingu do dostarczania własnego domyślnego pojęcia Current .Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

Reprezentuje metodę, która obsługuje TransactionCompleted zdarzenie Transaction klasy.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

Reprezentuje metodę, która będzie obsługiwać DistributedTransactionStarted zdarzenie TransactionManager klasy.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

Uwagi

System.TransactionsInfrastruktura sprawia, że programowanie transakcyjne jest proste i wydajne w całej platformie dzięki obsłudze transakcji zainicjowanych w SQL Server, ADO.NET, MSMQ i Microsoft Distributed Transaction Coordinator (MSDTC).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). Zapewnia to zarówno jawny model programowania oparty na Transaction klasie, jak i niejawny model programowania korzystający z TransactionScope klasy, w której transakcje są automatycznie zarządzane przez infrastrukturę.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. Zdecydowanie zaleca się używanie łatwiejszy niejawny model do programowania.It is highly recommended that you use the easier implicit model for development. Aby rozpocząć, zobacz temat implementowanie niejawnej transakcji przy użyciu zakresu transakcji .To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. Aby uzyskać więcej informacji na temat pisania aplikacji transakcyjnej, zobacz pisanie aplikacji transakcyjnej.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions Program udostępnia również typy umożliwiające zaimplementowanie Menedżera zasobów.System.Transactions also provides types for you to implement a resource manager. Natywny dla infrastruktury Menedżer transakcji System.Transactions zezwala na zasoby lotne lub pojedynczą, trwałą rejestrację zasobów, aby zatwierdzić lub przywrócić efektywność.The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. Aby uzyskać więcej informacji na temat implementowania Menedżera zasobów, zobacz implementowanie Menedżer zasobów.For more information on implementing a resource manager, see Implementing A Resource Manager.

Menedżer transakcji w sposób niewidoczny dla użytkownika niewidocznie przeprowadza eskalację transakcji lokalnych do transakcji rozproszonych przez koordynowanie przez Menedżera transakcji oparty na dyskach, na przykład w przypadku usługi DTC, gdy dodatkowy, trwały Menedżer zasobów jest zarejestrowany w transakcji.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. Istnieją dwie metody klucza który System.Transactions infrastruktury zapewnia lepszą wydajność.There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • Eskalacja dynamiczna, co oznacza, że System.Transactions infrastruktura angażuje się tylko wtedy, gdy jest ona rzeczywiście wymagana dla transakcji.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. Ten obszar jest szczegółowo opisany w temacie Eskalacja zarządzania transakcjami .This area is covered in depth in the Transaction Management Escalation topic.

  • Awansowanie rejestracji, co umożliwia zasobu, takie jak bazy danych, przejęcie na własność transakcji, jeśli jest tylko typy jednostek uczestnictwa w transakcji.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. Później, w razie potrzeby, System.Transactions infrastruktura może nadal eskalować Zarządzanie transakcjami do usługi MSDTC.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. Dodatkowo zmniejsza to ryzyko przy użyciu MSDTC.This further reduces the chance of using the MSDTC. Ten obszar jest szczegółowo objęty optymalizacją przy użyciu jednej fazy zatwierdzania i przekazywania pojedynczej fazy .This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions definiuje trzy poziomy zaufania, które ograniczają dostęp do typów zasobów, które ujawnia.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. Zestaw System. Transactions może być wywoływany przez częściowo zaufany kod, ponieważ został oznaczony przy użyciu AllowPartiallyTrustedCallers atrybutu (APTCA).Specifically, the System.Transactions assembly can be called by partially trusted code as it has been marked with the AllowPartiallyTrustedCallers attribute (APTCA). Ten atrybut zasadniczo usuwa niejawny LinkDemand dla FullTrust zestawu uprawnień, który jest w inny sposób automatycznie umieszczany w każdej publicznie dostępnej metodzie w każdym typie.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. Niektóre typy i elementy członkowskie nadal wymaga jednak lepsze gwarancje uprawnień.However, some types and members still require stronger permissions.

Poniżej znajduje się lista typów i elementów członkowskich, które nie są wywoływane przez częściowo zaufany kod, ponieważ są one uzupełnione o następujący deklaratywny atrybut zabezpieczeń: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. EnlistDurableSystem.Transactions.Transaction.EnlistDurable

System. Transactions. Transaction. EnlistPromotableSinglePhaseSystem.Transactions.Transaction.EnlistPromotableSinglePhase

System. Transactions. TransactionInteropSystem.Transactions.TransactionInterop

System. Actions. TransactionManager. DistributedTransactionStartedSystem.Transactions.TransactionManager.DistributedTransactionStarted

System. Actions. TransactionManager. HostCurrentTransactionCallbackSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System. Actions. TransactionManager. rerejestrowaniaSystem.Transactions.TransactionManager.Reenlist

System. Actions. TransactionManager. RecoveryCompleteSystem.Transactions.TransactionManager.RecoveryComplete

System. Transactions. TransactionScope. TransactionScope (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. TransactionScopeOption, system. Transactions. TransactionOptions, system. Transactions. EnterpriseServicesInteropOption)M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

Aby uzyskać więcej informacji na temat różnych poziomów zaufania, zobacz zabezpieczenia poziomów zaufania w temacie dostęp do zasobów.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Przetwarzanie podstawowe Technologies\Data Access\TransactionCore Development Technologies\Data Access\Transaction Processing</span>

Aby uzyskać więcej informacji na temat korzystania z System.Transactions przestrzeni nazw, można zapoznać się z tematem Przetwarzanie transakcjidokumentacji koncepcyjnej, która znajduje się w sekcji "podstawowe programowanie Technologies\Data Access\Transaction \ " w dokumentacji.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. W tym celu więcej informacji można znaleźć w poniższych tematach.Specifically, you can find more information in the following topics.

Funkcje zapewniane przez system. TransactionsFeatures Provided By System.Transactions

Implementowanie Menedżer zasobówImplementing A Resource Manager