首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AAS模型暂停和恢复后,尝试打开ADOMD.net连接将返回307响应

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

Stack Overflow用户
提问于 2020-03-09 15:22:29
回答 1查看 217关注 0票数 1

背景

我有一个API,它使用ADOMD.Net客户机从(AAS)模型中检索数据。连接是使用一个连接字符串创建的,该连接字符串包含作为文档化的这里获得的访问令牌。

问题

API工作正常,直到AAS模型被暂停,并恢复每晚发生的事件。在此之后,模型返回一个207临时重定向响应。

代码语言:javascript
复制
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

标题中的位置是:

代码语言:javascript
复制
https://asazureweu10-westeurope.asazure.windows.net/webapi/xmla

最初的请求(但是是由ADOMD.Net客户机而不是我提出的)是为了:

代码语言:javascript
复制
https://asazureweu5-westeurope.asazure.windows.net/webapi/xmla

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

有人知道幕后发生了什么吗?知道为什么会发生这种事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-12 09:30:30

这是一个已被证实的错误,已经报告给M.

微软的支持工程师说。

客户端库确实将集群信息缓存在AppDomain级缓存中,该缓存的超时时间为60分钟。但是,有一个无效代码使错误代码>= 300和<= 399上的缓存无效。在这种情况下,错误是307,所以失效逻辑应该仍然工作,只要连接关闭,然后再打开。

这个bug将在8月底,即9月初Nuget发布时进行修补。

microsoft.AnalysisServices.AdomdClient.NetCore.retail.amd64,更新:此bug已在Nuget包版本19.9.0.1-预览.中修补。

我使用的代码片段如下所示。

代码语言:javascript
复制
        // 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;
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60603599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档