gpt4 book ai didi

sql-server - 向 ISS/SSAS 发出 XMLA/DAX 请求

转载 作者:行者123 更新时间:2023-12-03 20:53:48 27 4
gpt4 key购买 nike

我在SSAS 2019中有一个表格数据库,其中数据源是SQL Server 2019。我需要通过XMLA检索数据,所以我关注了these instructions将 IIS 连接到 SSAS。

当我使用 POST 方法(HTTP 调用)通过 ISS 向 SSAS 发送 SOAP 请求时,出现以下错误。响应是 SOAP 消息这一事实让我认为问题出在 SSAS,而不是 ISS。

如果我从 SSMS(没有 SOAP)运行 XMLA,它工作正常,所以它可能是 SOAP 信封的问题。

我试图用谷歌搜索错误,但找不到任何东西。如何使这项工作?这是什么解析错误?

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
<Command>
<Statement>
Evaluate DimProduct
</Statement>
</Command>
<Properties>
<PropertyList>
<Catalog>TabularProject4</Catalog>
</PropertyList>
</Properties>
</Execute>
</soap:Body>
</soap:Envelope>

错误响应:
 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode>XMLAnalysisError.0xc1270004</faultcode>
<faultstring>Errors during parsing DIME headers. An unexpected value was
encountered in the TYPE field of a chunk record for a DIME message.</faultstring>
<detail>
<Error ErrorCode="3240558596" Description="Errors during parsing DIME
headers. An unexpected value was encountered in the TYPE field of a chunk record for
a DIME message." Source="Unknown" HelpFile=""/>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

更新

查看 SSAS specification 中的第 2.1.1 节, DIME 代表一个二进制数据记录,不知道为什么 SSAS 试图读取二进制数据。

例如,如果我不发送整个 SOAP XML,而是发送 <A>xxx</A>我得到同样的错误,因为它仍然试图解析 DIME 格式。

最佳答案

我找不到解决此问题的方法,因此我最终在 IIS 中托管的 C# 中创建了一个 REST API 服务。 C# 程序访问 Analysis Services 数据库,执行 DAX 语句,并返回包含数据的 JSON。 Java 程序通过调用 API 获取数据。此解决方案还有一个额外的好处,因为 XMLA 过于冗长,而 JSON 消息更短。即使有大量数据,这也能正常工作。

关于sql-server - 向 ISS/SSAS 发出 XMLA/DAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61738861/

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