Questo può accadere quando la transazione scade. Puoi aumentare il timeout per la tua transazione in questo modo (usa valori appropriati per la durata prevista della tua transazione). Il codice seguente è per 15 minuti:
using (TransactionScope scope =
new TransactionScope(TransactionScopeOption.Required,
new System.TimeSpan(0, 15, 0)))
{
// working code here
}
Questo è il motivo per cui avrebbe potuto funzionare per batchsize 500 e non per 1000.