从 ASP.net 应用程序连接到分析服务
Connecting to Analysis Service from ASP.net application
我正在尝试实现 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();
}
}
此代码抛出以下异常
A connection cannot be made. Ensure that the server is running.
内部异常表示
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
内部异常的内部异常是
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
另一方面,我可以使用相同的用户名和密码从 Excel 连接到此分析服务,如下所示
我尝试按照 here 所述设置对 Olap 服务器的 HTTP 访问。通过 IIS 设置的匿名身份验证,我能够成功连接。但是,当我禁用匿名选项并启用基本身份验证时,我再次无法从我的客户端工具进行连接,但是 Excel 使用基本身份验证可以正常工作。
但尝试使用 HTTP 访问只是临时解决方案。我不想使用该选项。我希望能够像在 excel 中那样从我的客户端应用程序连接 SSAS。
我的问题是,我连接 SSAS 的实现(不起作用)和 excel 身份验证(完美运行)之间有什么区别?
提前致谢。
不要将用户名和密码放在连接字符串中,而是尝试至少将您的 .Open()
函数调用包装在这个模仿者中:
与连接字符串上的密码相比,我在这方面取得了更大的成功。
除非您愿意,否则您不需要 msmdpump HTTP 层。
我正在尝试实现 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();
}
}
此代码抛出以下异常
A connection cannot be made. Ensure that the server is running.
内部异常表示
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
内部异常的内部异常是
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
另一方面,我可以使用相同的用户名和密码从 Excel 连接到此分析服务,如下所示
我尝试按照 here 所述设置对 Olap 服务器的 HTTP 访问。通过 IIS 设置的匿名身份验证,我能够成功连接。但是,当我禁用匿名选项并启用基本身份验证时,我再次无法从我的客户端工具进行连接,但是 Excel 使用基本身份验证可以正常工作。
但尝试使用 HTTP 访问只是临时解决方案。我不想使用该选项。我希望能够像在 excel 中那样从我的客户端应用程序连接 SSAS。
我的问题是,我连接 SSAS 的实现(不起作用)和 excel 身份验证(完美运行)之间有什么区别?
提前致谢。
不要将用户名和密码放在连接字符串中,而是尝试至少将您的 .Open()
函数调用包装在这个模仿者中:
与连接字符串上的密码相比,我在这方面取得了更大的成功。
除非您愿意,否则您不需要 msmdpump HTTP 层。