azure - Azure API 管理集状态代码策略未按预期工作
问题描述
我正在使用设置状态代码策略,其中我将返回状态代码和相应的状态原因,如果我尝试点击 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>
解决方案
由于您在 APIM 的不同实例之间得到不同的行为,因此问题似乎很可能是在未返回原因值的实例上未正确设置“消息”变量。
我无法完全复制这一点。当使用像 410 这样的已知状态代码时,我测试的所有 APIM 实例似乎都将“Gone”设置为未指定的原因。但是由于状态码未知,没有返回任何原因。我没有看到新旧 APIM 实例之间的行为有任何差异。
推荐阅读
- javascript - 如何将查询语法解析为具有分组和优先级的数据库查询?
- kubernetes - Pod 在创建时会消耗其请求或限制中指定的全部资源吗?
- c# - FluentEmail.Razor 值不能为空。参数名称:operatingAssembly
- node.js - Webpack 构建失败,没有打印错误信息
- next.js - 在 Next.js 中将函数作为道具传递
- java - 针对 Android 11 (Api 30) 重命名视频/图像
- php - JSON 到 PHP:如果每个数组具有不同的名称,则访问数组数据
- python - 无法找到正确的 CSS 选择器来抓取标题
- java - 未能运行博览会运行:android
- android - 在 Android 中使用相机 2 进行人像和风景视频录制