Веб-формы ASP.NET, использующие сессию в разных потоках - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь запустить 5 задач параллельно, используя Parallel.Foreach (), но проблема в том, что имя пользователя, которое будет использоваться для подключения к базе данных, по какой-то причине хранится в Sessions и при попытке выполнить любой запрос в Task. Run () или Parallal.Foreach () Я получаю нулевые сессии.

Я не могу понять, как правильно использовать await / async для выполнения этой задачи.

Действие: Запустите планировщик заданий за щелчком веб-кнопки:

 // In same webform page inside constructer 
 // I am setting all the session variables which are used to connect to database.
 // Calling Process method
 new SimpleJobScheduler.SimpleJobScheduler().Process();

Метод обработки:

  // GetJobsFromTable() runs fine and I am getting jobs to execute
  var dt = GetJobsFromTable();

    Parallel.For(0, dt.Rows.Count, i => {

         var item = dt.Rows[i];

         ProcessJob(item);

   });

Метод ProcessJob выполняет задание, но затем запускает запрос к таблице Jobs. Но я получаю нулевые сеансы и, следовательно, запрос не выполняется.

...