Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 但事务已中止错误_C#_Transactions_Entity Framework 6_Transactionscope_Distributed Transactions - Fatal编程技术网

C# 但事务已中止错误

C# 但事务已中止错误,c#,transactions,entity-framework-6,transactionscope,distributed-transactions,C#,Transactions,Entity Framework 6,Transactionscope,Distributed Transactions,我使用EF6,采用代码优先的方法。我有一个案例,我试图在两个不同的数据库上应用相同的事务。请在下面找到我的代码作为参考 using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, TimeSpan.FromSeconds(6000))) { using (var dbContext = new MyDbContext()) {

我使用EF6,采用代码优先的方法。我有一个案例,我试图在两个不同的数据库上应用相同的事务。请在下面找到我的代码作为参考

using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, TimeSpan.FromSeconds(6000)))
        {
            using (var dbContext = new MyDbContext())
            {
                try
                {
                    /*
                     * some operations on dbContext
                     * 
                     */

                    using (IDbConnection conn = new SqlConnection(NewConnectionString))
                    {
                        string query = " ALTER TABLE [dbo].[TableName]...........";
                        conn.Execute(query); // I am using a dapper to call this execute query
                    }
                }
                catch (Exception ex)
                {                        
                    throw;
                }
            }

            scope.Complete();
        }
try块中的第一部分使用linq对表执行一些常规操作。
在使用IDbConnection的第二部分中,我正在另一个数据库上使用dapper执行一些查询。我可以毫无错误地执行所有操作,但在完成作用域后我会出错。事务已中止时抛出错误。每当我跳过短小精悍的执行部分时,一切都很好。我已经检查了许多解决方案,并试图为dapper部分设置单独的事务,但没有任何效果。我的要求是把所有的报表放在一个事务下。可能吗?如何?

是否存在内部异常?@Crowcoder内部异常为空。此代码尝试启动分布式事务协调器(MS-DTC),但可能会失败。两个数据库服务器都应该能够运行MS-DTC。在事务作用域中使用不同的连接字符串时,MS-DTC始终是必需的。