Docker容器上的Mac和SQL Server的Visual Studio使用TransactionScope

我为docker运行以下代码:

docker run -d --name sql_server_demo -e 'accEPT_EULA=Y' -e 'SA_PASSWORD=myPass’ -p 1433:1433 microsoft/mssql-server-linux

,并且我没有问题地创建了一个名为ExampleDB的数据库。我可以通过DBeaver访问它,然后选择@@ version结果

microsoft SQL Server 2017 (RTM-CU13) (KB4466404) - 14.0.3048.4 (X64) 
Nov 30 2018 12:57:58 
Copyright (C) 2017 microsoft Corporation
Developer Edition (64-bit) on Linux (Ubuntu 16.04.5 LTS)

在我的Visual Studio for Mac应用程序中,连接字符串为 Server=localhost,1433;Database=ExampleDB;MultipleactiveResultSets=true;User=sa;Password=myPass; 问题是当我尝试使用TransactioScope之类的

using (var ts = new TransactionScope(TransactionScopeOption.Required,new TransactionOptions(){IsolationLevel = IsolationLevel.ReadCommitted}))
            {
                //DO AN INSERT QUERY              

                ts.Complete();
            }

在ts.Complete()之后,出现以下错误:

{System.ObjectDisposedException:无法访问已处置的对象。 对象名称:“ SqlDelegatedTransaction”。 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono-x64 / external / corefx中的System.Data.SqlClient.SqlDelegatedTransaction.GetValidConnection()[0x0000a] /src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDelegatedTransaction.cs:430 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono中的System.Data.SqlClient.SqlDelegatedTransaction.Rollback(System.Transactions.SinglePhaseEnlistment征募)[0x00000] -x64 / external / corefx / src / System.Data.SqlClient / src / System / Data / SqlClient / SqlDelegatedTransaction.cs:226 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds /中的System.Transactions.Transaction.Rollback(System.Exception ex,System.Object abortingEnlisted)[0x000a7] mono-x64 / mcs / class / System.Transactions / System.Transactions / Transaction.cs:321 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono-x64 / mcs中的System.Transactions.Transaction.Rollback(System.Exception e)[0x00005] /class/System.Transactions/System.Transactions/Transaction.cs:293 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono-x64 / mcs / class / System中的System.Transactions.Transaction.Rollback()[0x00000] .Transactions / System.Transactions / Transaction.cs:287 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono-x64 / mcs / class / System中的System.Transactions.Transaction.Dispose()[0x0000d] .Transactions / System.Transactions / Transaction.cs:135 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono中的System.Data.ProviderBase.DbConnectionInternal.set_EnlistedTransaction(System.Transactions.Transaction值)[0x0008a] -x64 / external / corefx / src / System.Data.SqlClient / src / System / Data / ProviderBase / DbConnectionInternal.cs:89 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external /中的System.Data.ProviderBase.DbConnectionInternal.DetachTransaction(System.Transactions.Transaction事务,System.Boolean isExplicitlyReleasing)[0x0003f] bockbuild / builds / mono-x64 / external / corefx / src / System.Data.SqlClient / src / System / Data / ProviderBase / DbConnectionInternal.cs:422 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono中的System.Data.ProviderBase.DbConnectionInternal.CleanupConnectionOnTransactionCompletion(System.Transactions.Transaction transaction)[0x00000]处-x64 / external / corefx / src / System.Data.SqlClient / src / System / Data / ProviderBase / DbConnectionInternal.cs:436 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono /中的System.Data.SqlClient.SqlDelegatedTransaction.SinglePhaseCommit(System.Transactions.SinglePhaseEnlistment征募)[0x000df] -x64 / external / corefx / src / System.Data.SqlClient / src / System / Data / SqlClient / SqlDelegatedTransaction.cs:377 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono-x64中的System.Transactions.Transaction.DoSingleCommit(System.Transactions.IPromotableSinglePhaseNotification single)[0x00004] /mcs/class/System.Transactions/System.Transactions/Transaction.cs:526 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono-x64 / mcs / class / System中的System.Transactions.Transaction.DoCommit()[0x00080] .Transactions / System.Transactions / Transaction.cs:408 在/ Users / builder / jenkins / workspace / build-package-osx-mono / 2019-06 / external / bockbuild / builds / mono-x64 / mcs / class / System中的System.Transactions.Transaction.CommitInternal()[0x00022] .Transactions / System.Transactions / Transaction.cs:366}

令人震惊的是,该行已插入表中,因此正确完成了。 请有人帮助我,我很绝望。

iamhero3333 回答:Docker容器上的Mac和SQL Server的Visual Studio使用TransactionScope

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2828995.html

大家都在问