同じSQLServer2008 R2(10.50.2550.0)データベースを指す2つのリポジトリがあります。1つのリポジトリはEntityFrameworkに基づいており、もう1つは通常のSqlConnectionを使用しています。両方を含む操作を実行する必要があるため、を使用TransactionScope
してそれらを同じトランザクションに保持しました。
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions() { IsolationLevel = IsolationLevel.RepeatableRead }))
{
_repoA.DoStuff();
_repoB.DoStuff();
}
両方で同じ接続文字列を使用しているため、次のようになります。
"Data Source=(local);Initial Catalog=mydb;User Id=myid;Password=mypass;Asynchronous Processing=true"
SQL Server 2008 R2は、スケーリングせずに複数の接続を使用できると期待していました。残念ながら、次のような例外が発生します。
System.Data.SqlClient.SqlExceptionが発生しましたサーバー'MyComputer'でMessage=MSDTCを使用できません。Source =.NetSqlClientデータプロバイダー
ErrorCode=-2146232060 Class = 16 LineNumber = 1 Number = 8501
Procedure = "" Server =(local)State = 2 StackTrace:at System.Data.SqlClient.SqlConnection.OnError(SqlException exception、Boolean breakConnection )。
何が問題なのですか?
乾杯。