Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C测试SSAS中与数据源的连接#_C#_Sql Server 2008 R2_Ssas_Smo_Adomd.net - Fatal编程技术网

C# 如何使用C测试SSAS中与数据源的连接#

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

我在远程服务器上的Analysis Services中有一个数据库。这包含位于另一远程服务器上的另一个数据库的数据源

我正在尝试使用C#编写一个连接测试,它将检查两个数据库之间的数据库连接

我无法使用ADOMD.NET完成此操作。我目前正在考虑使用SMO来实现这一点,但到目前为止我还没有任何运气

如有任何意见或建议,我将不胜感激

更新:
在进一步研究之后,我提出了以下测试(请注意,我打算稍后添加更多的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”)