Я использую вызов ajax на страницах просмотра ASP.NET Core MVC
MyView.cshtml
$.ajax({
processData: false,
contentType: false,
data: new FormData(this),
type: $(this).attr('method'),
url: $(this).attr('action'),
cache: false,
success: function (data) {
$('#mydiv).html(data);
$('#bootstrapModal).modal('show');
Метод столбца контроллера
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> MyLongRunningMethod(MyViewModel viewModel)
{
await MyProcess.Longprocess1();
await MyProcess.Longprocess2();
await MyProcess.Longprocess3();
await MyProcess.Longprocess4();
return PartialView("_MyPartialPage");
}
Это работает, но имеет только проблему для продолжительного процесса. Я получаю следующую ошибку во время режима отладки, когда процесс занимает больше, чем около 2 минут
Я понимаю, что это связано с истечением времени ожидания
в предыдущих версиях ASP.NET MVC вы, очевидно, можете увеличить тайм-аут в своем действии контроллера asp.net.
HttpContext.Current.Server.ScriptTimeout = 90000;
Однако этого не существует в ASP.NET Core
Я хочу увеличить тайм-аут для отладки и развертывания для конкретного контроллера asp.net.
Для производства я могу установить его глобально в web.config
, добавив requestTimeout в существующий тег httpPlatform.
например в течение 10 минут
<httpPlatform requestTimeout="00:10:00" ....
Был задан аналогичный вопрос, но ответ , используя CancellationToken
, но, читая его, похоже, он не может помочь мне с таймаутами.
- Как установить таймауты в режиме отладки Visual Studio 2015, как я могу это сделать, когда я его развертываю?
- Есть ли настройка тайм-аута контроллера, как в
ASP.NET 4
?