C# 如何使用C测试SSAS中与数据源的连接#
我在远程服务器上的Analysis Services中有一个数据库。这包含位于另一远程服务器上的另一个数据库的数据源 我正在尝试使用C#编写一个连接测试,它将检查两个数据库之间的数据库连接 我无法使用ADOMD.NET完成此操作。我目前正在考虑使用SMO来实现这一点,但到目前为止我还没有任何运气 如有任何意见或建议,我将不胜感激 更新:C# 如何使用C测试SSAS中与数据源的连接#,c#,sql-server-2008-r2,ssas,smo,adomd.net,C#,Sql Server 2008 R2,Ssas,Smo,Adomd.net,我在远程服务器上的Analysis Services中有一个数据库。这包含位于另一远程服务器上的另一个数据库的数据源 我正在尝试使用C#编写一个连接测试,它将检查两个数据库之间的数据库连接 我无法使用ADOMD.NET完成此操作。我目前正在考虑使用SMO来实现这一点,但到目前为止我还没有任何运气 如有任何意见或建议,我将不胜感激 更新: 在进一步研究之后,我提出了以下测试(请注意,我打算稍后添加更多的try..catch块和断言) 此外,它还使用C:\Program Files\Microsof
在进一步研究之后,我提出了以下测试(请注意,我打算稍后添加更多的try..catch块和断言) 此外,它还使用C:\Program Files\Microsoft SQL Server\100\SDK\Assembly\Microsoft.AnalysisServices.DLL访问服务器、数据库和数据库 数据源类
class ConnectivityTests
{
// Variables
String serverName = "";
String databaseName = "";
String dataSourceName = "";
[Test]
public void TestDataSourceConnection()
{
// Creates an instance of the Server
Server server = new Server();
server.Connect(serverName);
// Gets the Database from the Server
Database database = server.Databases[databaseName];
// Get the DataSource from the Database
DataSource dataSource = database.DataSources.FindByName(dataSourceName);
// Attempt to open a connection to the dataSource. Fail test if unsuccessful
OleDbConnection connection = new OleDbConnection(dataSource.ConnectionString);
try
{
connection.Open();
}
catch (OleDbException e)
{
Assert.Fail(e.ToString());
}
finally
{
connection.Close();
}
}
我相信这个测试对于我的测试已经足够了(一旦我添加了更多的try..catch块和断言)。如果测试通过,这意味着我的机器和两台服务器之间没有连接问题,这意味着服务器之间不应该有任何连接问题
但是,我无法确定如何直接测试两台服务器之间的连接,如果有人知道这样做的方法,我很感兴趣。我遇到的进行此连接测试的最佳解决方案如下: 请注意,这需要添加Microsoft.AnalysisServices.DLL作为参考
class ConnectivityTests
{
// Variables
String serverName = "";
String databaseName = "";
String dataSourceName = "";
[Test]
public void TestDataSourceConnection()
{
try
{
// Creates an instance of the Server
Server server = new Server();
server.Connect(serverName);
// Gets the Database from the Server
Database database = server.Databases[databaseName];
// Get the DataSource from the Database
DataSource dataSource = database.DataSources.FindByName(dataSourceName);
// Attempt to open a connection to the dataSource. Fail test if unsuccessful
OleDbConnection connection = new OleDbConnection(dataSource.ConnectionString);
connection.Open();
}
catch (Exception e)
{
Assert.Fail(e.ToString());
}
finally
{
connection.Close();
}
}
}
有什么问题吗?您的代码与我在测试某些连接问题时使用的代码非常相似。目前,我正在使用Microsoft.AnalysisServices.AdomdClient中的AdomdConnection,但我也使用了您正在使用的Server类。@AnttiSimonen我添加的代码运行良好。它测试我的机器和DBServer以及我的机器和数据仓库之间的连接。我感兴趣的是,是否有一种方法可以测试DBServer和数据仓库之间的连接。我认为这实际上是不可能的(不将文件放在DBServer上)。@AnttiSimonen我很高兴看到其他人正在使用类似的方法测试连接问题。谢谢它适用于我的本地SQL实例。但是,如果要连接到部署在远程sql server中的SSA,该怎么办?这是我的远程服务器名称:
OLAPServer.Connect(“serverIP:Port\\instanceName”)代码>