2017-01-19 5 views
1

J'essaie de récupérer des données à partir d'Azure Analysis Services à l'aide d'ADOMD.NET à partir d'un modèle déployé dans le cloud. L'extrait de code est comme ci-dessous, mais j'obtiens une erreur que ConnectionString est invalide.Erreur de chaîne de connexion lors de l'utilisation d'ADOMD.NET pour se connecter à 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

Avez-vous trouvé ce produit? – Unnie

Répondre

0

La première chose à faire est de vous assurer que la dernière ADOMD.NET (AdomdClient) est installée. Téléchargez-le à partir du here. Après avoir installé, assurez-vous que votre projet C# a une référence à elle à:

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

Ensuite, vous devez changer votre chaîne de connexion à:

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

note quelques petites choses . Tout d'abord, c'est l'identifiant de l'utilisateur et non le nom d'utilisateur. Deuxièmement, l'utilisateur doit être un utilisateur Azure Active Directory (un compte d'organisation, pas un LiveID personnel). Enfin, vous devez spécifier le catalogue initial pour vous assurer que vous vous connectez à la base de données correcte au cas où plusieurs bases de données seraient déployées.

0

Ce problème est dû au fait que la version RTM d'AdomdClient ne prend pas réellement en charge la version RTM d'Azure Analysis Services. En conséquence, le Nuget package suivant est nécessaire:

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

Une fois que vous supprimez/désinstaller la version 12 (la version RTM) de Microsoft.AnalysisServices.AdomdClient.12.0.2000.8 et installer le tout AdomdClient ci-dessus fonctionne ça va. En bref, la version v12 n'a pas le code intégré pour analyser asazure: // Sources de données

Très ennuyeux sans documentation sur le site de Microsoft ni support lié au problème. Cependant, cela répondra à votre question.