我在远程服务器上的 Analysis Services 中有一个数据库。这包含位于另一个远程服务器上的另一个数据库的数据源。
我正在尝试使用 C# 编写一个连接测试,它将检查两个数据库之间的数据库连接。
我一直无法使用 ADOMD.NET 做到这一点。我目前正在考虑使用 SMO 来做到这一点,但到目前为止我还没有运气。
我将不胜感激任何意见或建议。
更新:
经过进一步研究,我提出了以下测试(请注意,我打算稍后添加更多 try..catch 块和断言)。
此外,它使用C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.AnalysisServices.DLL来访问 Server、Database 和 DataSource 类。
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 块和断言)。如果测试通过,这意味着我的机器和两台服务器之间没有连接问题,这意味着服务器之间不应该有任何连接问题。
但是,我一直无法弄清楚如何直接测试两台服务器之间的连接,如果有人知道这样做的方法,我很感兴趣。