Исключение AdomdConnectionException не было обработано — строка подключения недействительна.

     public static void connect()
     {   
        try
        {
            string connectionStringStaging = @"Data Source=<server_name>;Catalog=<catalog_name>;User ID=<user_name>;Password=<my_password>";
            string commandText = @"SELECT NON EMPTY { [Measures].[# Opptys moved to Committed] } ON COLUMNS FROM [Model] 
                                    CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS";
            AdomdConnection connection = new AdomdConnection(connectionStringStaging);
            connection.Open();
            AdomdCommand cmd = new AdomdCommand(commandText);
            cmd.Connection = connection;
            using (var reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    Console.WriteLine(reader[0]);
                }
            }
        }
        catch (AdomdConnectionException ex)
        {
            Console.WriteLine("Error : " + ex.ToString());
        }
     }

Я использую приведенный выше код для подключения к серверу, а затем продолжаю выполнять запросы MDX, используя это. Проблема заключается в ошибке, которую я получаю: «Строка подключения недействительна» в строке

connection.open(); 

Неправильное ли имя настроек, которое я использую в своей строке подключения? Может ли кто-нибудь помочь мне понять, что не так в моей строке подключения?

Трассировка стека выглядит следующим образом: введите здесь описание изображения


person Tarun Talreja    schedule 03.07.2017    source источник
comment
Можете попробовать User ID (с пробелом) вместо UserName?   -  person Tamás Szabó    schedule 03.07.2017
comment
Я также пытался использовать User ID, но это не сработало.   -  person Tarun Talreja    schedule 03.07.2017


Ответы (2)


Ознакомьтесь со следующей документацией Microsoft: https://msdn.microsoft.com/en-us/library/microsoft.analysisservices.adomdclient.adomdconnection.connectionstring.aspx

Вы также можете найти несколько примеров строк подключения здесь: https://www.connectionstrings.com/adomd-net/

Надеюсь, это поможет вам решить проблему.

person Bogdan Anghel    schedule 03.07.2017
comment
Я уже видел тот же документ, но ничего не помогает, я не могу найти, что не так в моей строке подключения - person Tarun Talreja; 03.07.2017
comment
Пожалуйста, вложите код в блок try/catch и опубликуйте здесь полную трассировку стека, чтобы я мог лучше понять проблему. - person Bogdan Anghel; 03.07.2017
comment
Из того, что я вижу в трассировке стека, вызов connection.Open() должен анализировать номер порта, который не указан в строке подключения. Ваша проблема может заключаться в строке ‹server_name›. Ниже приведены примеры из документации Microsoft: 1. Источник данных = AW-SRV01 для экземпляра по умолчанию и порта (TCP 2383). 2. Источник данных=AW-SRV01$Finance:8081 для именованного экземпляра ($Finance) и фиксированного порта. 3. Источник данных = AW-SRV01.corp.Adventure-Works.com для полного доменного имени, предполагая экземпляр и порт по умолчанию. 4 Источник данных=172.16.254.1 для IP-адреса сервера. - person Bogdan Anghel; 03.07.2017
comment
Мой источник данных: Data Source=asazure://aspaaseastus2.asazure.windows.net/dwraasstaging - person Tarun Talreja; 03.07.2017
comment
Ссылка, которую вы дали, не работала, но ответ ниже решил мою проблему. - person Tarun Talreja; 04.07.2017

Я нашел свой ответ здесь. Неофициальный пакет работал нормально. Итак, я установил ссылку Unofficial.Microsoft.AnalysisServices.AdomdClient, поэтому проблема была не в строке подключения, а в пакете.

person Tarun Talreja    schedule 04.07.2017
comment
Рад узнать, что ты это понял. Пожалуйста, отметьте свой ответ как решение. - person Bogdan Anghel; 04.07.2017
comment
@BogdanAnghel Да, я отмечу свой ответ, но я могу сделать это только через 24 часа после публикации своего ответа. - person Tarun Talreja; 04.07.2017