2017-01-19 17 views
1

Я пытаюсь получить данные из служб анализа Azure с использованием ADOMD.NET из развернутой модели в облаке. Фрагмент кода выглядит следующим образом, но я получаю сообщение об ошибке, которое ConnectionString недействительно.Ошибка строки подключения при использовании ADOMD.NET для подключения к Azure Analysis

using Microsoft.AnalysisServices.AdomdClient; 
using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Test_Analysis_Service_retrieval 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string queryString = @"SELECT [MAP_CUST_NAME] FROM [AAS_MAPLOOKUP] where [MAP_ACT_NO] = '120000810';"; 
      string connectionString = @"Data Source=asazure://westus.asazure.windows.net/bbacloud;[email protected];[email protected];"; 

      using (AdomdConnection connection = new AdomdConnection(connectionString)) 
      { 
       CellSet AASOutput = null; 
       System.Xml.XmlReader reader = null; 
       try 
       { 
        string s = connection.ConnectionString; 
        Console.WriteLine(s); 
        connection.Open(); 
        AdomdCommand command = new AdomdCommand(queryString, connection); 
        command.CommandTimeout = 100000; 
        reader = command.ExecuteXmlReader(); 
        Console.WriteLine(reader.ReadOuterXml()); 
       } 
       catch(Exception e) 
       { 
        Console.WriteLine(e.Message); 
       } 
       finally 
       { 
        if (reader != null) 
        { 
         reader.Close(); 
        } 
        connection.Close(); 
       } 
      } 
     } 
    } 
} 
+0

У вас есть это исправлено? – Unnie

ответ

0

Первое, что вам нужно сделать, это убедиться, что у вас установлен последний ADOMD.NET (AdomdClient). Загрузите его с here. После того, как вы установили его, убедитесь, что ваш # проект C имеет ссылку на него по адресу:

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.AnalysisServices.AdomdClient\v4.0_13.0.0.0__89845dcd8080cc91\Microsoft.AnalysisServices.AdomdClient.dll

Далее, вам необходимо изменить строку подключения к:

string connectionString = @"Data Source=asazure://westus.asazure.windows.net/bbacloud;User [email protected];Password=pwdHere;Initial Catalog=DatabaseNameHere"; 

Примечанию нескольких вещей , Во-первых, это идентификатор пользователя, а не имя пользователя. Во-вторых, пользователь должен быть пользователем Azure Active Directory (организационная учетная запись, а не личный LiveID). Наконец, вам нужно указать начальный каталог, чтобы убедиться, что вы подключаетесь к правильной базе данных, если у вас когда-либо было развернуто несколько баз данных.

0

Оказывается, эта проблема связана с RTM-версией AdomdClient, фактически не поддерживающей RTM-версию Azure Analysis Services. В результате следующий пакет NuGet требуется:

https://github.com/ogaudefroy/Unofficial.Microsoft.AnalysisServices.AdomdClient

После удаления/удалить версию 12 (версия RTM) из Microsoft.AnalysisServices.AdomdClient.12.0.2000.8 и установить выше все работает AdomdClient просто хорошо. Короче говоря, версия v12 не имеет встроенного кода для анализа asazure: // Источники данных

Очень раздражает без документации на сайте Microsoft или поддержки, связанной с этой проблемой. Однако это затронет ваш вопрос.