Веб-страница отображается как " ожидание” даже после того, как код завершает весь фоновый процесс
Я разработал веб-приложение, которое вставляет записи в PL/SQL, используя приведенный ниже код
trans_status = myDataAdapter.Update(ds, "LoadedTable");
Описанный выше процесс обновления занимает приблизительно 30 минут, чтобы завершить процесс.
Весь код после
myDataAdapter.Update(ds, "LoadedTable");
выполняется без каких-либо проблем, но все равно страница не обновляется. Веб-страница продолжает ждать и никогда не выдает сообщение "загружено успешно".Все вышесказанное происходит по щелчку кнопки.
Шаг 1: Загрузка записей с SQL server.[что занимает около 14 секунд]
Шаг 2: вставьте все записи, извлеченные из SQL в Oracle с помощью
myDataAdapter.Update(ds, "LoadedTable")
[что занимает около 30 минут]Шаг 3: уведомление пользователя по электронной почте [я получаю уведомление по электронной почте]
transtatus = myDataAdapter.Update(ds, "LoadedTable"); } if (transtatus == -1) { sql.SendStatusEmail("sample@abc.com", "Transaction Failed"); } else { sql.SendStatusEmail("sample@abc.com", "Transaction Successful"); }
Шаг 4: обновите некоторые таблицы SQL с успехом / неудачей [все таблицы будут успешно обновлены]
Шаг 5: отображение сообщения об успехе в метке [ничего не отображается, так как страница продолжает ждать]
if (TranSuccess == true) { lblMsg.Text = "Transation Successfull"; lblMsg.Visible = true;
Шаг 6: загрузите сетку со свежими записями из SQL
gvFileList.DataBind(); gvProcessedFileList.DataBind(); }
Привязка Gridview на последнем шаге в событии click.
Чтобы убедиться, что элемент управления подходит к последнему оператору, я написал код для записи некоторых деталей в обычный текст после
gvProcessedFileList.DataBind();
, и я тоже мог бы найти результат.Когда я отлаживаю его, он работает так, как ожидалось, но когда я развертываю код только на сервере, я испытываю эту проблему.
Пожалуйста, помогите мне решить этот вопрос.
Что я уже пробовал:
1. Увеличено время ожидания выполнения.
2. попробовал вставить код в каждое действие после "myDataAdapter.Update (ds, "LoadedTable")", чтобы убедиться, что элемент управления возвращается на страницу после инструкции oracle update.
3. Поставьте Ответ.Перенаправление как последний оператор в событии Click, чтобы проверить, перенаправляется ли страница. Хотя управление приходит в строку кода, перенаправление действия не происходит.
F-ES Sitecore
Я бы, вероятно, изменил поток страницы, чтобы работа выполнялась с помощью вызова ajax, который срабатывает при загрузке страницы и обновляет ее по завершении. Таким образом, пользователь получает страницу обратно вместе с каким-то сообщением "Пожалуйста, подождите" или анимацией, а затем они ждут завершения задачи.
ZurdoDev
Итак, вы нажимаете кнопку и ожидаете, что соединение все еще будет активным через 30 минут? Не очень вероятно, произойдет. Измените его на ajax.