Questions tagged «transactionscope»

7
TransactionScope是否在某些计算机上自动升级为MSDTC?
在我们的项目中,我们使用TransactionScope来确保我们的数据访问层在事务中执行其动作。我们的目标是不要求在最终用户的计算机上启用MSDTC服务。 麻烦的是,在我们一半的开发人员机器上,我们可以在禁用MSDTC的情况下运行。另一半必须启用它,否则他们会收到“ [SERVER]上的MSDTC不可用”错误消息。 这真的让我抓狂了,还让我认真考虑回滚到基于ADO.NET事务对象的类似HomeScope的TransactionScope解决方案。这似乎是疯狂的-在我们一半的开发人员的代码上起作用(并且不会升级)的相同代码确实会在其他开发人员的代码上升级。 我希望对Trace有了一个更好的答案,为什么交易会升级为DTC,但不幸的是却没有。 这是会引起问题的示例代码,在尝试升级的机器上,它尝试在第二个连接上升级.Open()(是的,当时没有其他连接打开)。 using (TransactionScope transactionScope = new TransactionScope() { using (SqlConnection connection = new SqlConnection(_ConStr)) { using (SqlCommand command = connection.CreateCommand()) { // prep the command connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { // use the reader connection.Close(); } } } // Do other stuff here …

3
在什么情况下SqlConnection会自动加入环境TransactionScope事务中?
SqlConnection在事务中被“征募”是什么意思?这是否仅表示我在连接上执行的命令将参与事务? 如果是这样,在什么情况下SqlConnection会自动加入环境TransactionScope事务中? 查看代码注释中的问题。我对每个问题答案的猜测都跟在括号中的每个问题之后。 方案1:在事务范围内打开连接 using (TransactionScope scope = new TransactionScope()) using (SqlConnection conn = ConnectToDB()) { // Q1: Is connection automatically enlisted in transaction? (Yes?) // // Q2: If I open (and run commands on) a second connection now, // with an identical connection string, // what, if any, is …

3
获取TransactionScope以使用异步/等待
我试图整合async/ await到我们的服务总线。我SingleThreadSynchronizationContext基于此示例http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx实现了一个。 它工作正常,除了一两件事:TransactionScope。我等待里面的东西TransactionScope,它打破了TransactionScope。 TransactionScope似乎不能与async/ 配合使用await,当然是因为它使用将内容存储在线程中ThreadStaticAttribute。我得到这个例外: “ TransactionScope嵌套不正确。”。 我试图TransactionScope在排队任务之前保存数据,并在运行它之前将其还原,但似乎并没有改变任何事情。和TransactionScope代码是一个烂摊子,所以真的很难理解发生了什么事情在那里。 有办法使它起作用吗?有TransactionScope什么替代方法吗?

2
TransactionScope如何回滚事务?
我正在编写一个集成测试,该测试将在数据库中插入许多对象,然后检查以确保我的方法是否检索到这些对象。 我与数据库的连接是通过NHibernate进行的,而创建此类测试的常用方法是执行以下操作: NHibernateSession.BeginTransaction(); //use nhibernate to insert objects into database //retrieve objects via my method //verify actual objects returned are the same as those inserted NHibernateSession.RollbackTransaction(); 但是,我最近发现了TransactionScope,显然可以用于此目的... 我发现的一些示例代码如下: public static int AddDepartmentWithEmployees(Department dept) { int res = 0; DepartmentAdapter deptAdapter = new DepartmentAdapter(); EmployeeAdapter empAdapter = new EmployeeAdapter(); using (TransactionScope …

1
Database.BeginTransaction与Transactions.TransactionScope
System.Transactions.TransactionScope和EF6和有什么不一样Database.BeginTransaction? 有人可以举一个很小的例子,或者只是解释一个明显的区别时使用哪个? PS:在我的项目中,我正在使用EF6。我已经阅读了文档,但并没有太大帮助。还查看了示例,但它们正在使用SqlConnection.BeginTransaction,现在MSDatabase.BeginTransaction在EF6中引入了此新功能。

10
事务管理器已禁用对远程/网络事务的支持
我正在使用SQL Server和ASP.NET。我有以下功能: Using js = daoFactory.CreateJoinScope() Using tran = New Transactions.TransactionScope() '... tran.Complete() End Using End Using 但是,例外-事务管理器已禁用其对远程/网络事务的支持。'被抛出。 JoinScope的描述: Public Class JoinScope Implements IJoinScope Implements IDisposable '... End Class 我已经在具有相同环境的另一个应用程序中以这种方式工作,没有问题,但是在这里我遇到了这个问题。我该怎么做才能解决此问题?

3
为什么System.Transactions TransactionScope默认为Isolationlevel可序列化
我只是想知道在创建System.Transactions TransactionScope时使用Serializable作为默认Isolationlevel的一个很好的理由是什么,因为我想不到任何原因(而且似乎无法更改默认值,因此您总是必须在其中设置它您的代码) web/app.config using(var transaction = TransactionScope()) { ... //creates a Transaction with Serializable Level } 相反,我总是不得不像这样编写样板代码: var txOptions = new System.Transactions.TransactionOptions(); txOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; using(var transaction = new TransactionScope(TransactionScopeOption.Required, txOptions)) { ... } 有任何想法吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.