Azure API返回超时超时错误

问题描述 投票:0回答:1

我需要在api级别设置超时,我使用了此

<forward-request timeout="3">

我在微服务中添加了wait()以测试此更改,并且它按预期运行。

问题出在返回的错误中,它是如此通用

{
    "statusCode": 500,
    "message": "Internal server error",
    "activityId": "xxxxxxxx"
}

如何使其更具体(超时错误)?

更新1:通过添加此],我找到了解决此问题的方法

<on-error>
    <set-body>
        @(
            new JObject(
                new JProperty("MsgRsHdr",new JObject(new JProperty("status", "ERROR"))),
                new JProperty("content",new JObject(
                    new JProperty("errors",
                        new JArray(
                            new JObject(
                                new JProperty("code", context.Response.StatusCode.ToString()),
                                new JProperty("message", context.LastError.Message),
                                new JProperty("Reason", context.LastError.Reason),
                                new JProperty("Source", context.LastError.Source),
                                new JProperty("Scope", context.LastError.Scope),
                                new JProperty("Section", context.LastError.Section),
                                new JProperty("Path", context.LastError.Path),
                                new JProperty("PolicyId", context.LastError.PolicyId),
                                new JProperty("type", "Error")
                            )
                        )
                    ),
                    new JProperty("timestamp",DateTime.UtcNow)
                    )
                )
            ).ToString()
        )
    </set-body>
</on-error>

对我来说,这似乎是一种解决方法,而不是返回更有意义的响应的预期方式。

我需要在api级别设置超时,我使用了此[[我在微服务中添加了wait()来测试此更改,并且它按预期工作。问题出在...

azure azure-api-management
1个回答
0
投票
默认行为的想法是,您可以控制要向调用API的客户端公开多少细节。客户并不总是由您控制。查看带有模板的set-body,以使错误响应更易于在策略中读取。
© www.soinside.com 2019 - 2024. All rights reserved.