Панель обновления больше не ждет завершения задачи - PullRequest
0 голосов
/ 24 мая 2018

У меня есть сайт, который работает в Asp.Net 4.0 / webforms.

Я думал, что смогу просто перенести его на 4,7 "как есть", но я ошибся.

КакВы можете оценить из версии Asp.Net, здесь нет «ожидающей задачи» - только панель обновлений и тег Async="true" на самой странице.

Почему нам понадобился тег Async на странице вво-первых, мне неизвестно.

Рассматриваемая страница является формой заявки, поэтому, когда пользователь заканчивает ввод данных, он нажимает «отправить».

Затем долго выполняемое заданиезапускается (90 секунд) с последующим перенаправлением на другую страницу.

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

За исключением того, что он больше не работает, и теперь я получаю следующее сообщение:

Асинхронный модуль или обработчик завершен, пока асинхронная операция еще не завершена

Я думаю, чтоt страница больше не ждет завершения работы, но, поскольку подобные вещи для меня совершенно новые, я не знаю, как правильно исправить это.

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

async Task WaitForMe()
{
    // This waits 5 secs - no issues.
    await Task.Delay(5000);
}

async Task ThisIsTheRealOne()
{
    // This contains a number of methods plus a
    // WebClient Http Request - it errors with:
    // "An asynchronous module or handler completed while an asynchronous +
    // operation was still pending"
}

Любой совет приветствуется.

1 Ответ

0 голосов
/ 24 мая 2018

Я нашел ответ, а не тот, который ожидал.

Метод, вызываемый (синхронно), впоследствии запускал письмо асинхронно.Это работало в Asp.Net 4.0, но я предполагаю, что не после введения задач в 4.5+.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...