【问题标题】:ADOMD client in MonoMono 中的 ADOMD 客户端
【发布时间】:2014-09-05 01:28:25
【问题描述】:

我已经安装了 Ubuntu(v 14.04) 和 MonoDevelop(v 4.0.12)。我希望从在 Linux(Ubuntu)上运行的 C# 应用程序连接到 SSAS(分析服务)。我正在尝试在我的 C# 代码中导入 Microsoft.AnalysisServices.AdomdClient.dll。即使在添加对此 dll 的引用后,由于 dll 的原因,我也无法编译代码。

我想知道 MonoDevelop 是否支持 ADOMD.NET ? 如果 Mono 不支持 ADOMD.NET,有什么方法可以使用 C#、Mono 和 Linux 连接到分析服务器?

【问题讨论】:

  • 你需要运行什么?只有几个 MDX 查询?可以通过访问 http 接口来开发所需功能的子集。您需要将请求作为 XML 发送并解析作为响应发送的 XML。
  • @frank :感谢您的回复,但我不知道我们该怎么做。是的,我只需要运行一些 MDX 查询,但在此之前我必须连接到分析服务器多维数据集。能否请您帮助我使用 C# 将 Linux PC 与 SSAS 连接起来?

标签: c# .net linux mono ssas


【解决方案1】:

您实际上可以在 XMLA/SOAP 级别连接到 Analysis Services,如下所示:

首先按照here 的描述设置一个到 Analysis Services 的 http 代理。然后,您可以通过 http POST 请求联系 IIS 应用程序,它将您的请求转发到 Analysis Services 服务器,并将结果作为 XML 返回。

使用任何开发环境,向上述步骤中配置的http URL(例如https://YourServer.example.com/olap/msmdpump.dll)发送一个http POST请求,其中包含以下XML:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
        <Statement>
          select [Date].[Calendar].[Calendar Year].Members
                 on columns,
                 [Sales Territory].[Sales Territory Country].Members
                 on rows
            from [Adventure Works]
        </Statement>
      </Command>
      <Properties>
        <PropertyList>
          <Catalog>Adventure Works DW 2008</Catalog>
          <Format>Tabular</Format>
        </PropertyList>
      </Properties>
    </Execute>
  </soap:Body>
</soap:Envelope>

然后,您将以两种格式之一的 XML 格式返回结果,表格格式(更类似于关系结果集)或多维格式,您将在其中获得轴列表,然后是单元格列表。要设置格式,要么保留上面我的代码中的查询,要么将&lt;Format&gt;Tabular&lt;/Format&gt; 更改为&lt;Format&gt;Multidimensional&lt;/Format&gt; 以获取多维格式的结果。这个结果的解释当然取决于您的应用程序。但是 - 根据可能的 MDX 语句的可变性 - 您只需要在应用程序中编写您需要的代码。

Statement XML 元素的内容是您的 MDX 选择语句。请注意 - 因为这是 XML - 您必须在此语句中转义一些特殊字符,如 &amp;lt;&amp;gt;&amp;amp;,并改用 &amp;lt;&amp;gt;&amp;amp;

而且确实必须是http post请求,get请求会报错。

【讨论】:

    猜你喜欢
    • 2014-09-30
    • 2014-09-29
    • 2019-06-06
    • 2011-10-30
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多