Services in unmanaged code are known as COM+ services. The COM+ services infrastructure can be accessed from managed and unmanaged code. In .NET, these services are referred to as Enterprise Services. Working with transactions in Enterprise Services using ADO.NET is straightforward.
Programming using Enterprise Services
Derive the components from System.EntrepriseService.ServicedComponent.
Specify the custom attributes (such as Transaction, AutoComplete, and others) to specify the requested services and their options. For a complete list of the attributes, refer to the Enterprise Services documentation.
The Timeout Option in the .NET Transaction attribute has to be explicitly set to -1 or a very high number. .NET documentation states that the ADO.NET transaction timeout default is 0, which means it will never time out. However, this actually causes an immediate transaction timeout, which rolls back the entire transaction.
Sign and build the assembly.
Register the assembly.