0

我正在尝试实现 ASP.net 应用程序,该应用程序需要连接 Microsoft 分析服务 (SSAS) 以从多维数据集和维度中检索数据。

    static void Main(string[] args)
    {
        StringBuilder connectionStringBuilder = new StringBuilder();
        connectionStringBuilder.Append("Data Source=MyDataSource;");
        connectionStringBuilder.Append("Initial Catalog=MyOlapDatabase;");
        connectionStringBuilder.Append(@"User Id=OlapServerMachineName\MyUserName;");
        connectionStringBuilder.Append("Password=MyPassword;");
        connectionStringBuilder.Append("Provider=MSOLAP.5;");
        connectionStringBuilder.Append("Persist Security Info=True;");
        connectionStringBuilder.Append("MDX Compatibility=1;");
        connectionStringBuilder.Append("Safety Options=2;");
        connectionStringBuilder.Append("MDX Missing Member Mode=Error;");
        connectionStringBuilder.Append("Update Isolation Level=2;");



        using (var connection = new AdomdConnection(connectionStringBuilder.ToString()))
        {
            connection.Open();

        }

    }

此代码引发以下异常

无法建立连接。确保服务器正在运行。

内部异常说

无法从传输连接读取数据:现有连接被远程主机强行关闭。

内部异常的内部异常是

无法从传输连接读取数据:现有连接被远程主机强行关闭。

另一方面,我可以使用相同的用户名和密码从 Excel 连接到此分析服务,如下所示 Excel Olap 连接

我尝试按照此处所述设置对 Olap 服务器的 HTTP 访问。通过 IIS 设置上的匿名身份验证,我能够成功连接。但是,当我禁用匿名选项并启用基本身份验证时,我再次无法从我的客户端工具连接,但 Excel 与基本身份验证一起工作正常。

但是尝试使用 HTTP 访问只是为了临时解决方案。我不想使用该选项。我希望能够像在我的客户端应用程序中的 excel 中一样连接 SSAS。

我的问题是,我的连接 SSAS(不起作用)和 excel 身份验证(工作完美)之间的区别是什么?

先感谢您。

4

1 回答 1

2

与其将用户名和密码放在连接字符串上,不如尝试至少将您的.Open()函数调用包装在此模仿器中:

https://github.com/OlapPivotTableExtensions/OlapPivotTableExtensions/blob/master/OlapPivotTableExtensions/Impersonater.cs

我比连接字符串上的密码更成功。

除非您更喜欢它,否则您不应该需要 msmdpump HTTP 层。

于 2015-11-12T12:41:42.767 回答