所以在我的 API 服务全局上,我总是希望根据某些调用区域设置后端服务 URL。
根据这篇MSDN 库文章,使用 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>
....导致错误:
“第 0 行第 0 列元素 'set-backend-service' 中的错误:指定范围内不允许使用策略”
我不知道如何使故障排除变得更简单。我什至删除了条件语句,只留下了策略,它仍然显示范围错误。
我知道这个全局范围可以正常工作,因为我能够将 xml-to-json 策略作为临时测试并成功保存。
我想有人已经遇到过这个问题,因为这一定是该策略的常见用例。否则,我认为 MSDN 文章已经过时,除非这里的任何人都可以看到任何问题。