Почему webjobs api всегда возвращает статус «Принят», а не 200? - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь запустить свои веб-задания Azure с помощью кода C #, но он работает, но он возвращает принятый статус с кодом состояния 202.

Я использую приведенный ниже код для того же фрагмента кода для вызова webjob api из Интернетаприложение.

Code snippet for webjob api call from web app

1 Ответ

0 голосов
/ 18 декабря 2018

Возможно, вы сомневаетесь, что код состояния ответа HTTP должен быть 200 OK, а не 202 Accepted, если запрос HTTP был успешно обработан.Тем не менее, 200 OK или 202 Accepted является законным и разумным, пожалуйста, обратитесь к разделу 10 10 Status Code Definitions W3C RFC-2616, чтобы узнать их подробно, как показано ниже.

10.2.1 200 OK Запрос успешно выполнен.Информация, возвращаемая с ответом, зависит от метода, используемого в запросе, например:

GET в ответе отправляется объект, соответствующий запрошенному ресурсу;

HEAD заголовок объектаполя, соответствующие запрашиваемому ресурсу, отправляются в ответе без какого-либо тела сообщения;

POST - объект, описывающий или содержащий результат действия;

TRACE - объект, содержащий сообщение запроса, как получено.конечным сервером.

10.2.3 202 Принято Запрос принят к обработке, но обработка не завершена.Запрос может или не может в конечном итоге быть обработан, так как он может быть отклонен, когда обработка действительно имеет место.Нет возможности для повторной отправки кода состояния из асинхронной операции, такой как эта.

Ответ 202 намеренно не является обязательным.Его цель - позволить серверу принять запрос для какого-либо другого процесса (возможно, пакетно-ориентированного процесса, который выполняется только один раз в день), не требуя, чтобы соединение пользовательского агента с сервером сохранялось до завершения процесса.Субъекту, возвращенному с этим ответом, СЛЕДУЕТ включать указание текущего состояния запроса и либо указатель на монитор состояния, либо некоторую оценку того, когда пользователь может ожидать выполнения запроса.

Между тем дваКомментарии к коду, приведенные ниже в репозитории GitHub Kudu, объясняют, почему здесь используется 202 Accepted для запуска веб-заданий.

I. Kudu.Services / ServiceHookHandlers / FetchHandler.cs # L111

// Return a http 202: the request has been accepted for processing, but the processing has not been completed.

II. Kudu.Services / Jobs / JobsController.cs # L191

// Return a 200 in the ARM case, otherwise a 202 can cause it to poll on /run, which we don't support
// For non-ARM, stay with the 202 to reduce potential impact of change

Это зависит от целей проектирования сервисов.

...