C# TransactionScope引发事务超时异常
我正在创建一个Windows服务,它基本上每24小时运行一次,从计算机上的文件中获取数据,并将数据放入数据库 共有27个文件,其中5个文件一个接一个地运行,另外22个文件生成新线程并同时运行 我目前面临的问题是,在TransactionScope的using语句的末尾,我调用Complete(),该语句运行良好,但一旦using语句的末尾(最后一个括号)被命中,就会抛出TransactionBortedException 以下是我的代码的设置方式:C# TransactionScope引发事务超时异常,c#,transactions,transactionscope,C#,Transactions,Transactionscope,我正在创建一个Windows服务,它基本上每24小时运行一次,从计算机上的文件中获取数据,并将数据放入数据库 共有27个文件,其中5个文件一个接一个地运行,另外22个文件生成新线程并同时运行 我目前面临的问题是,在TransactionScope的using语句的末尾,我调用Complete(),该语句运行良好,但一旦using语句的末尾(最后一个括号)被命中,就会抛出TransactionBortedException 以下是我的代码的设置方式: using (TransactionScope
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew, TimeSpan.FromHours(1)))
{
using (RgsDb2.DbConnection pDbConn = mComms.DbConnection(mConnectionString))
{
if (FirstFile(mCurrentImportDate, pDbConn))
{
if (SecondFile(mCurrentImportDate, pDbConn))
{
if (ThirdFile(mCurrentImportDate, pDbConn))
{
if (FourthFile(mCurrentImportDate, pDbConn))
{
if (FifthFile(mCurrentImportDate, pDbConn))
{
//LOOPS THROUGH THE LIST AND CREATES A NEW THREAD FOR THE FILE AND ADDS THAT TO A LIST.
foreach (string pFileThread in pThreadArray)
{
ProcessFilesThread pFileImportThread = new ProcessFilesThread(mConfiguration, pFileThread, mCurrentImportDate, ref pThreadList, ref mImportResults, mConnectionString, mFiles);
mActiveThreads.Add(pFileImportThread);
}
//STARTS EACH THREAD IN THE LIST.
mActiveThreads.ForEach(a => a.Start());
}
}
}
}
}
}
scope.Complete();
}
对于前5个文件,它们使用using语句中的pDbConn,但因为这22个文件将同时运行,所以其他22个文件中的每个文件都有自己的连接
有人能看到抛出TransactionBortedException的原因吗?可能是@Amit的重复项我看到了这一点并添加了超时,但它仍然不起作用。那么您是否收到任何内部异常?