从ASP.net应用程序连接到Analysis Service

时间:2015-11-12 10:04:17

标签: c# asp.net ssas adomd.net

我正在尝试实现ASP.net应用程序,该应用程序需要连接Microsoft Analysis Service(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连接到此Analysis Service,如下所示 Excel Olap Connection

我尝试按照here所述设置对Olap Server的HTTP访问。通过IIS设置的匿名身份验证,我能够成功连接。但是当我禁用匿名选项并启用基本身份验证时,我再次无法从我的客户端工具连接,但Excel可以正常使用基本身份验证。

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

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

提前谢谢。

1 个答案:

答案 0 :(得分:2)

不要将用户和密码放在连接字符串上,而是尝试在此模仿中至少包装.Open()函数调用:

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

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

除非您愿意参与,否则您不应该使用msmdpump HTTP层。