在这里寻找一点帮助。我有一个连接到SSAS多维数据集的ASP.NET站点。在各种SSAS版本(最近的SSAS 2014)中,这种方法已经使用了十多年。网站设置为使用Windows身份验证,因此每个用户只能看到他们拥有的权限。作为将SSAS数据库升级到2017年的一部分,我还从.NET 3.5升级到.NET 4.7。我的SSAS服务器在单独的服务器上运行-不在IIS服务器上。
似乎引起问题的代码非常简单:
AdomdConnection olapCnn = new AdomdConnection(); olapCnn.ConnectionString = ""Provider=MSOLAP;Data Source=ASServerName;Initial Catalog=SomeDatabase"; olapCnn.Open();
打开连接失败,并显示“连接失败或超时”。如果我指向SSAS 2014服务器和数据库,则可以正常工作。如果运行探查器跟踪,则可以在SSAS 2014实例上看到,我正在按预期使用凭据连接到AS。但是,在我的MSAS 2017实例上,我可以看到尝试在NTUserName列中使用“匿名登录”登录,而NTDomainName是“ NT AUTHORITY”。有了这些凭据,我就无法连接-但是,我不明白为什么它不像MSAS 2014实例那样不获取我的凭据。
这对我来说更加棘手。它实际上可以从托管IIS的开发机上运行-如果我通过VS 2017调试是否启动项目,都可以打开连接,并且探查器显示我的凭据,因此将所有需要连接到SSAS的组件安装在IIS /开发服务器。如果我在不使用VS 2017的情况下从开发/ IIS服务器上的浏览器连接到网站,则一切都将正常进行。
综上所述:我可以从开发/ IIS计算机连接到远程SSAS实例,也可以从另一台PC连接到开发/ IIS计算机上的IIS,由于它尝试以匿名方式连接到SSAS 2017,因此失败。指向SSAS 2014实例,它既可以在开发/ IIS计算机上运行,也可以在远程计算机上工作。
我在这里想念什么?