SSAS ADOMD连接被强制关闭

时间:2019-01-23 17:01:21

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

我构建了一个Web应用程序(c#ASP.Net 4.0)。在此应用程序中,我想连接到SSAS多维数据集(SQL Server 2017)

using (AdomdConnection connection = new AdomdConnection(connectionString))
{
    AdomdCommand command = new AdomdCommand(query, connection)
    {
        CommandTimeout = connection.ConnectionTimeout
    };
    AdomdDataAdapter mdAdapter = new AdomdDataAdapter(command);
    connection.Open();
    result = (CellSet)command.Execute();
    connection.Close();
}

如果我在本地开发计算机上启动该应用程序,则连接正常。当我将应用程序部署到IIS(版本6.2 / Server 2012 R2)并浏览到站点时,出现此错误。

  

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

我使用Web服务器上的SQL Management-Studio检查了连接。我在DB主机上使用本地Windows用户登录SSAS。 一切正常(连接,MDX)。

我的连接字符串:

 <add name="MyConnection" connectionString="Provider=MSOLAP;Persist Security Info=True;Update Isolation Level=2;User ID= XXX ;Password= XX;Data Source= My DB-HOST:SSAS-Port;Catalog=My SSAS-CUBE;"/>

也许您有任何想法,除了这个问题,我如何获得更多信息?

Thx, 问候 托马斯

1 个答案:

答案 0 :(得分:1)

  

connectionString =“ Provider = MSOLAP;持久安全信息=正确;更新隔离级别= 2;用户ID = XXX;密码= XX;数据源=我的DB-HOST:SSAS端口;目录=我的SSAS-CUBE; “

SSAS仅支持Windows Integrated Auth(或通过数据泵的HTTP Basic)。因此,您可以从连接字符串中删除“用户ID”和“密码”,并授予IIS应用程序池标识对多维数据集的访问权限(假设您没有在模拟)。如果您是模拟用户,除非SSAS与IIS在同一服务器上运行,否则您将需要使Kerberos约束委派正常工作。

如果您对应用程序池使用任何本地自动标识,则将使用计算机帐户来授予对远程资源的访问权限。因此,如果您的IIS服务器名为MyDomain \ MyServer,则授予对MyDomain \ MyServer $的访问权限。