gpt4 book ai didi

c# - AAS 模型暂停和恢复后,尝试打开 ADOMD.net 连接返回 307 响应

转载 作者:行者123 更新时间:2023-12-03 02:42:09 25 4
gpt4 key购买 nike

背景

我有一个 API,它使用 ADOMD.Net 客户端从 Azure Analysis Services (AAS) 模型检索数据。使用连接字符串创建连接,该连接字符串包含按文档 here 获取的访问 token 。 .

问题

API 工作正常,直到 AAS 模型暂停并恢复(每天晚上都会发生这种情况)。此后,模型返回 207 临时重定向响应。

The remote server returned an error: (307) Temporary Redirect.

Technical Details:
RootActivityId: 4d85e2d9-e1ec-406d-92aa-3f3e33ac4ed4
Date (UTC): 3/9/2020 1:09:05 PM

标题中的位置是:

https://asazureweu10-westeurope.asazure.windows.net/webapi/xmla

原始请求(但由 ADOMD.Net 客户端发出,而不是我)的目的是:

https://asazureweu5-westeurope.asazure.windows.net/webapi/xmla

重新启动 API 后,客户端开始响应数据并正常运行。这让我相信某些东西正在被缓存,一旦 API 重新启动,缓存可能会被清除?这是连接池问题吗?

有谁知道幕后发生了什么并知道为什么会发生这种情况?

最佳答案

这是一个已验证的错误,已报告给微软。

MS支持工程师说过。

The client library indeed caches this the cluster information in theAppDomain level cache, which has a timeout of 60 minutes. But there isan invalidation code that invalidates the cache on error code >= 300and <= 399. In this case, the error is 307 so the invalidation logicshould still work, as long as the connection is closes and then openedagain.

此错误预计将在 8 月下旬、9 月初的 Nuget 版本中修复。

更新:此错误现已在 Nuget 包 microsoft.AnalysisServices.AdomdClient.NetCore.retail.amd64(版本 19.9.0.1-Preview)中修复。

我正在使用的代码片段如下。

        // Catch any error redirection errors and retry. Due to internal workings of lib, if model is scaled up or down, or paused and restarted,
// the model will come back on a different cluster, so we need to get a new connection.
catch (AdomdConnectionException ex)
{
if ((int) ((HttpWebResponse) ((WebException) ex.InnerException).Response).StatusCode >= 300
& (int) ((HttpWebResponse) ((WebException) ex.InnerException).Response).StatusCode <= 399)
{
aasConnection = await GetOpenAasConnectionAsync(customData, role);
}
else throw;
}

关于c# - AAS 模型暂停和恢复后,尝试打开 ADOMD.net 连接返回 307 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60603599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com