Политика кода состояния набора управления API Azure не работает должным образом - PullRequest
0 голосов
/ 24 мая 2018

Я использую установленную политику кодов состояния, в которой я буду возвращать код состояния и соответствующую ему причину состояния. Причина извлекается во время выполнения и на портале разработчика, если я пытаюсь получить доступ к API, в котором я смог получить статускод с сообщением об ожидаемой причине, но если я звоню из размещенной службы, я получаю только код состояния и не получаю сообщение о соответствующей причине

Это не существует во всех экземплярах APIM, которые у меня есть, в частностиодин экземпляр

Я получаю причину состояния, если я пытаюсь с портала разработчика

Примечание: переменная сообщения в причине состояниявыбирается из именованных значений во время выполнения


Код:

        <when condition="@(!14==14))">
          <return-response>
            <set-status code="410" reason="@(context.Variables.GetValueOrDefault<string>("Message"))" />
            <set-header name="Cache-Control" exists-action="override">
               <value>max-age=0, no-cache, no-store, must-revalidate, proxy-revalidate</value>
            </set-header>
          </return-response>
        </when>

Почтальон Вызов: Причина не получена, только код ref: выделенное желтым цветом поле enter image description here


Консоль разработчика: Желтое выделенное поле показывает и код, и сообщение enter image description here

1 Ответ

0 голосов
/ 25 мая 2018

Поскольку вы получаете различное поведение в разных экземплярах APIM, наиболее вероятно, что проблема в том, что переменная «Сообщение» не установлена ​​правильно в том случае, когда значение причины не возвращается.

Я не смог точно воспроизвести это.При использовании известного кода состояния, такого как 410, все проверенные экземпляры APIM, казалось, установили «Унесенные» в качестве причины, если ни один не был указан.Но с неизвестным кодом статуса причина не возвращалась.Я не видел различий в поведении между новым и старым экземпляром APIM.

...