Я работаю с устаревшим ASP. NET сайтом, работающим в IIS. Некоторые страницы используют ajax или Angular $ http для отправки запросов к MVC .Controller объектам. Есть несколько мест, где приложение допускает длительные запросы, которые иногда выполняются дольше 5 минут. Я понимаю, что это не идеально или не рекомендуется, но у меня нет возможности повторно реализовать эти операции прямо сейчас. Поведение, которое я наблюдаю в средах тестирования, заключается в том, что для больших запросов операция выполняется ровно 5 минут, а затем завершается с ошибкой на стороне клиента. Действие контроллера продолжает выполняться до завершения, но выглядит как неудачный запрос к вызывающей странице. Это происходит только на наших тестируемых серверах, при запуске приложения на локальном компьютере время не истекает. Я знаю, что это не тайм-аут сеанса, потому что он настроен с более длительным тайм-аутом, и пользователь все еще вошел в систему после неудачного запроса. Когда я проверяю web.config на тестовых серверах, для httpRuntime executeTimeout постоянно устанавливается значение 150. Это шаблон, который я использую на странице Angular для выполнения запроса:
var deferred = $q.defer();
$q.all(
$http.post("/MyController/MyControllerAction",
{
actionParameter1: value1,
actionParameter2: value2
})
.then()
.catch(function (e)
{
return deferred.reject("Error In Controller Action. (Error: " + e + ")");
}).then(
function (results) { deferred.resolve(results); },
function (errors) { deferred.reject(errors); },
function (notifyUpdates) { deferred.update(notifyUpdates); }));
return deferred.promise;
I не знаю других способов настройки таймаута на стороне клиента. Есть ли другие места, где я могу проверить настроенные таймауты; может быть тот, который по умолчанию 5 минут? Кроме того, я не эксперт по отложенному API Angular. Что мне нужно добавить к этому коду для входа в систему или оповещения () с информацией об ошибке по истечении времени ожидания запроса?