You have a Microsoft
.NET Framework 2.0-based application that connects to
a SQL Server database. You use the
TransactionScope class to create a transaction. In
the transaction, you
establish
a second connection by calling the
SqlConnection.Open method. When
you do this, you
may receive the following error message and call
stack information:
System.InvalidOperationException: The
requested operation cannot be completed because the connection has been
broken.
at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)
at System.Data.SqlClient.SqlDelegatedTransaction.Promote()
at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)
at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)
at System.Transactions.EnlistableStates.Promote(InternalTransaction tx)
at System.Transactions.Transaction.Promote()
at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction)
at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
A supported hotfix is available from Microsoft. However, this
hotfix is intended to correct only the problem that is described in this
article. Apply this hotfix only to systems that are experiencing this specific
problem.
If the hotfix is available for download, there is a "Hotfix
download available" section at the top of this Knowledge Base article. If this
section does not appear, submit a request to Microsoft Customer Service and
Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required,
you might have to create a separate service request. The usual support costs
will apply to additional support questions and issues that do not qualify for
this specific hotfix. For a complete list of Microsoft Customer Service and
Support telephone numbers or to create a separate service request, visit the
following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for
which the hotfix is available. If you do not see your language, it is because a
hotfix is not available for that language.
Prerequisites
You must have the .NET Framework 2.0 Service Pack 1 (SP1)
installed to apply this hotfix.
Restart requirement
You do not have to restart the computer after you apply this
hotfix if no instance of the .NET Framework is being used.
Hotfix replacement information
This hotfix does not replace other hotfixes.
File information
The English version of this hotfix has the file
attributes (or later file attributes) that are listed in the following table.
The dates and times for these files are listed in Coordinated Universal Time
(UTC). When you view the file information, it is converted to local time. To
find the difference between UTC and local time, use the
Time
Zone tab in the
Date and Time item in Control
Panel.
For all supported x86-based versions of Windows XP, of Windows Server 2000, and of Windows Server 2003
Collapse this tableExpand this table
| File name | File version | File
size | Date | Time | Platform |
|---|
| system.data.dll | 2.0.50727.1875 | 2,998,272 | 05- | 19:40 | x86 |
For all supported x64-based versions of Windows XP, of Windows Server 2000, and of Windows Server 2003
Collapse this tableExpand this table
| File name | File version | File
size | Date | Time | Platform |
|---|
| system.data.dll | 2.0.50727.1875 | 3,113,984 | 05- | 15:22 | x64 |
| system.data.dll | 2.0.50727.1875 | 2,998,272 | 05- | 19:40 | x86 |
For all supported Itanium-based versions of Windows XP, of Windows Server 2000, and of Windows Server 2003
Collapse this tableExpand this table
| File name | File version | File
size | Date | Time | Platform |
|---|
| system.data.dll | 2.0.50727.1875 | 3,208,192 | 05- | 15:56 | IA-64 |
| system.data.dll | 2.0.50727.1875 | 2,998,272 | 05- | 19:40 | x86 |
To work around this problem, use one of the following procedures:
Work around 1
Promote the transaction
before it is used by any connection. To do this, use the
System.Transasctions.TransactionInterop.GetTransmitterPropagationToken method.
Work around 2
The transaction has one connection enlisted. Keep this connection open for combined
operations.
Microsoft
has confirmed that this is a problem in the Microsoft products that are listed
in the "Applies to" section.