Инструментирование запросов клиентов для EWS и REST в Exchange
Узнайте о загонах HTTP в запросах и ответах EWS и REST, которые помогут вам отслеживать и устранять Exchange приложение.
С вами такое случалось? Пользователь приложения сообщает о неожиданной ошибке. Вы хотите исследовать, но вы не можете воспроизвести его. Ошибка исчезла для пользователя, и у вас осталось очень мало действий данных. Разочарование, не так ли? Давайте рассмотрим, как можно активно подготовиться к этому сценарию и, надеюсь, избежать разочарований в будущем.
Добавление инструментов в запросы
Мы рекомендуем добавить дополнительные http-заготки в запросы для облегчения устранения неполадок. Вы должны хранить запись этой информации где-то (например, в файле журнала), чтобы вы могли получить ее позже, если это необходимо. Это полезно при анализе сетевого трафика, а также полезно, если вы обратитесь за помощью в службу поддержки Майкрософт.
Таблица 1. Запрос заглавных заглавок для устранения неполадок
Http header (EWS) | Эквивалент управляемого API EWS | Примечания. |
---|---|---|
User-Agent |
ExchangeService.UserAgent |
Установите это уникальное значение, которое идентифицирует клиентскую заявку. Использование одинакового значения для всех запросов, которые отправляет приложение, позволяет Корпорации Майкрософт в случае их возникновения помочь устранить сбои вызовов. |
client-request-id |
ExchangeService.ClientRequestId |
Установите для каждого запроса, который отправляет приложение, другое уникальное значение. Рекомендуется использовать GUID. Этот уникальный идентификатор предназначен для сопоставления действий между двумя системами в случае, если что-то пойдет не так. |
return-client-request-id |
ExchangeService.ReturnClientRequestId |
Установите значение true, чтобы сигнализировать Exchange серверу о том, что в соответствующем ответе оно должно возвращать значение вашего клиента-запроса. Это можно использовать для сопоставления запросов и ответов в сетевых трассировок или трассировок управляемого API EWS. |
X-ClientStatistics |
ExchangeService.SendClientLatencies |
Используется для сообщения о задержках EWS в Корпорации Майкрософт, если приложение Exchange Online или Exchange Online в Office 365. |
Сведения о журнале из ответов
Так же, как клиент может добавить дополнительную аппаратуру к отправляемым запросам, Exchange добавляет дополнительные инструменты в ответы в виде http headers. Клиент должен зафиксировать эти сведения, чтобы получить сведения об инструментах запроса.
Примечание
Если вы используете управляемый API EWS, нет прямого эквивалента для http-заглав. Однако все заголовок ответов HTTP можно получить через свойство ExchangeService.HttpResponseHeaders.
Таблица 2. Http response headers
Http header | Описание |
---|---|
request-id |
Созданный сервером ID для запроса, соответствующего этому ответу. |
client-request-id |
Значение заглавного руководителя клиента-запроса в запросе. Этот заглавный заготок присутствует только в том случае, если запрос содержит заглавную ссылку return-client-request-id со значением true. |
X-FEServer |
FQDN сервера клиентского доступа, обрабатываемого запросом. |
X-TargetBEServer |
FQDN сервера почтовых ящиков, обрабатываемого запросом. |
X-DiagInfo |
Дополнительные диагностические сведения в зависимости от запроса. |
x-ms-diagnostics |
Этот заголовок применим только в том случае, если в запросе используется проверка подлинности OAuth. Он содержит явный код ошибки, который указывает причины сбой проверки подлинности OAuth. Требуется следующий формат: errorId;reason="reason"error_type="error type" Поле причины — это понятное человеку описание ошибки. Поле errorId — это рядное, _ а поле типа ошибки представляет строковую репрезентативность этого integer следующим образом:
|
Отчет о задержке EWS в Корпорации Майкрософт
Если ваше приложение использует управляемый API EWS или EWS для подключения к Exchange Online, вы можете сообщить о задержке в запросах EWS непосредственно в Корпорацию Майкрософт. Информация передается через заглавную заглавную запроса X-ClientStatistics. Если вы используете управляемый API EWS, все, что вам нужно сделать, это установить свойство ExchangeService.SendClientLatencies к true. Если вы используете EWS, необходимо измерить время между выдачей запроса и получением ответа, а затем добавить заглавную головку X-ClientStatistics в следующий запрос EWS, который отправляет ваше приложение, используя следующий формат.
X-ClientStatistics: MessageId=<value of request-id header>,ResponseTime=<time in milliseconds>,SoapAction=<EWS operation>
Мы поддерживаем отчеты об этих задержках и используем их для непрерывного улучшения служб EWS в Exchange Online.
Дальнейшие действия
После того как в приложение добавлена клиентская аппаратура, вы будете лучше подготовлены, если что-то пойдет не так. Если это произойдет, вы можете использовать данные приборов для устранения неполадок в приложении.