Так что, глобально на моем сервисе API, я всегда хочу установить URL-адрес службы backend на основе определенных областей вызова.Azure API Management: Выполнение глобальной политики для получения результатов с помощью set-backend-service с ошибкой области
В соответствии с этим MSDN library article, использование политики set-backend-service идеально подходит для этого, и это глобальная политика в соответствии с ее областью политики внизу.
Однако даже разместить их точный пример ...
<policies>
<inbound>
<choose>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2013-05")">
<set-backend-service base-url="http://contoso.com/api/8.2/" />
</when>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
<set-backend-service base-url="http://contoso.com/api/9.1/" />
</when>
</choose>
</inbound>
.... приводит к ошибке:
"Error in element 'set-backend-service' on line 0, column 0: Policy is not allowed in the specified scope"
Я не могу понять, как сделать это проще любой из ситуация для устранения неполадок. Я даже удалил условный оператор и оставил только политику, и он все еще показывает ошибку области.
Я знаю, что этот глобальный охват работает нормально, так как я смог ввести политику xml-to-json в качестве временного теста и успешно сохранить.
Я бы подумал, что кто-то столкнулся с этой проблемой, поскольку это должно быть обычным прецедентом для этой политики. В противном случае, я думаю, что статья MSDN устарела, если только здесь не видны какие-либо проблемы.
Вот моя сфера политики для глобальных:
Спасибо за ответ Джастин, но не повезло. Я получаю новую ошибку с этой версией: «Слишком много символов в буквальном буквале». Изменение одиночных кавычек в двойные кавычки удаляет эту ошибку и возвращается к исходной ошибке. Кроме того, я знаю, что это не будет работать над глобальной политикой. не будет разрешено в глобальной политике, поскольку нет ничего более базового, чем глобальное :) Вы пытаетесь его там? –
@RudyScoggins - это поведение, которое я вижу также. без копирования кода, если вы видите в области глобальной политики, если мы поместим курсор в пределах и , то заявление политики набора базовых услуг отображается серым цветом вопреки тому, что указано в документе. Я надеюсь, что кто-то из команды Azure APIM отметит то же самое. –