Ищите, где на моем ASP. NET веб-сайте может скрываться только 5-минутная конфигурация запроса на стороне клиента. - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю с устаревшим 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. Что мне нужно добавить к этому коду для входа в систему или оповещения () с информацией об ошибке по истечении времени ожидания запроса?

...