При использовании TransactionScope получить System.Reflection.TargetInvocationException - PullRequest
0 голосов
/ 24 октября 2019

Мы используем TransactionScope для транзакции,

IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted Timeout = 20 min TransactionScopeOption = TransactionScopeOption.RequiresNew

не может понять это исключение

Сообщение об исключении System.Reflection.TargetInvocationException:

System.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова. ---> System.Transactions.TransactionException: операция недопустима для состояния транзакции. ---> System.TimeoutException: время ожидания транзакции --- Конец трассировки стека внутренней исключительной ситуации ---
в System.Transactions.TransactionState.EnlistPromotableSinglePhase (InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, транзакция atomicTransaction, System.TactionTaction транзакции). .Transaction.EnlistPromotableSinglePhase (IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Guid promoterType) --- Конец внутренней трассировки стека исключений --- в System.RuntimeMethodHandle.InvokeMethod (объектная цель, аргументы объекта [], аргументы Signature sig, логическая функция SystemRef).UnsafeInvokeInternal (Параметры объекта obj, Object [], аргументы Object []) в System.Reflection.RuntimeMethodInfo.Invoke (Объект obj, BindingFlags invokeAttr, связыватель Binder, параметры Object [], Культура CultureInfo)
в System.Data. SqlClient.SqlInternalConnection.EnlistNonNull (транзакция tx) в System.Data.SqlClient.SqlInternalConnection.Enlist (транзакция tx)
в System.Data.ProviderBase.DbConnectionInternal.ActivateConnection (транзакция транзакции) в System.Data.ProviderBase.DbConnectionPool.PrepareConnection (DbConnection owningObject, DbConnectionInternal obj 101 транзакция транзакции). Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, булева allowCreate, булева onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal & соединение) System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 повторных попыток, DbConnectionOptions userOptions,DbConnectionInternal oldConnection, DbConnectionInternal & connection) в System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal (DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource 1 повторная попытка) в System.Data.Signer2.0Sec2Sense.SQCparamReader) в Dapper.SqlMapper.ExecuteImpl (IDbConnection cnn, CommandDefinition & command) в Dapper.SqlMapper.Execute (IDbConnection cnn, Строка sql, Объектный параметр, транзакция IDbTransaction, Nullable 1 commandTimeout, Nullable 1 commandType) *. * также получите ошибку ниже

System.Data.SqlClient.SqlException (0x80131904): Истекло время ожидания выполнения. Время ожидания истекло до завершения операции, или сервер не отвечает.

Истекло время ожидания сообщения об исключении:

System.Data.SqlClient.SqlException (0x80131904): истекло время ожидания выполнения. Время ожидания истекло до завершения операции или сервер не отвечает. ---> System.ComponentModel.Win32Exception (0x80004005): Время ожидания операции ожидания в System.Data.SqlClient.SqlConnection.OnError истекло (исключение SqlException, логическое прерывание breakConnection, действие 1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource 1 завершение, тайм-аут Int32, задача и задание, логическая переменная и используется C), Boolean asyncWrite, Boolean inRetry) в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, логический returnStream, метод String) в System.Data.SqlContor_Reader.Sec. SqlMapper.ExecuteReaderWithFlagsFallback (IDbCommand cmd,Boolean wasClosed, поведение CommandBehavior) в Dapper.SqlMapper.d__138 1.MoveNext() at System.Collections.Generic.List 1..ctor (источник IEnumerable 1 collection)<br> at System.Linq.Enumerable.ToList[TSource](IEnumerable 1) в Dapper.SqlMapper.Query [T] (IDbConnection cnn, String sql, параметр объекта, транзакция IDbTransaction, логическое значениес буферизацией, Nullable 1 commandTimeout, Nullable 1 commandType)

...