Torakami Ответов: 2

Как увеличить объем операций в C#


Хии ,

Я использую простую область транзакций в своем приложении , внутри которой я вставляю записи сотрудников в две разные базы данных ,

Я использую массовую загрузку для вставки изменений , используя csv-файл, он извлекает данные и вставляет поле в таблицы .

Теперь, когда данные велики, я получаю проблему объема транзакции тайм-аута .

Я использую dot net framework 4.0

Пожалуйста , предложите, я попытался дать промежуток времени в конструктор класса transaction scope .. но все равно проблема тайм-аута ..

2 Ответов

Рейтинг:
2

Suvendu Shekhar Giri

Попробовать это-

В файле Machine.config

<configuration> 
  <system.transactions>
    <machinesettings maxtimeout="00:30:00" />
  </system.transactions>
</configuration> 


В App.config
<system.transactions>
     <defaultsettings timeout="00:30:00" />
</system.transactions>


Если это не сработает, пожалуйста, дайте мне знать.


Torakami

я попробовал это решение , только вместо app.config я добавил их в свой файл web.config ..но все равно это дает мне тайм-аут, когда данные большие

Рейтинг:
0

Mantu Meher

// This is used for set the transaction timeout to 40 minutes.
Type objSystemType = typeof(global::System.Transactions.TransactionManager);
System.Reflection.FieldInfo oCachedMaxTimeout = objSystemType.GetField("_cachedMaxTimeout", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
System.Reflection.FieldInfo oMaximumTimeout = objSystemType .GetField("_maximumTimeout", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
oCachedMaxTimeout.SetValue(null, true);
oMaximumTimeout.SetValue(null, TimeSpan.FromSeconds(2400));

// For testing to confirm value was changed
// var show=(string.Format("DEBUG SUCCESS!!  Maximum Timeout for transactions is {0}", TransactionManager.MaximumTimeout.ToString()));


Richard Deeming

Не прибегайте к частным размышлениям. Вы можете переопределить этот параметр, изменив файл конфигурации, как показано в решении 1 - четыре года назад.