:)

я есть программа C #, которая подключается к удаленному серверу для запроса данных. Данные довольно большие, поэтому выполнение запроса занимает около 2 минут. В течение этого 2-минутного окна интернет отключился. Это привело к тому, что задание было не в состоянии завершиться с программой, застрявшей в процедуре получения данных.

Он установил соединение, но во время запроса на выборку он был отключен. Установка времени ожидания команды до 30 секунд не сработало. Мне нужно, чтобы запрос не выполнялся при обнаружении этой ошибки, потому что программа может обработать сбой, но она не может справиться с зависанием. Спасибо!

ОБНОВЛЕНИЕ: включенный код

OracleConnection connection = new OracleConnection(connectionstring);
OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(new OracleCommand(query, connection));
oracleDataAdapter.SelectCommand.CommandTimeout = 30;

  DataSet dataSet = new DataSet();
  try
  {
    oracleDataAdapter.Fill(dataSet, table); //Hangs on this line when connection is lost
    return dataSet;
  }
  catch
  {
    throw;
  }
  finally
  {
    dataSet.Dispose();
    oracleDataAdapter.Dispose();
  }

ОБНОВЛЕНИЕ СНОВА:

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

Простейшим будет, если соединение потеряно, программа выдаст ошибку. Это то, что я не знаю, как это сделать. Я предполагал, что команда timeout исправит это, но это не так.

Ответы на вопрос(0)

Ваш ответ на вопрос