2017-07-27 3 views
0

Ich habe ein Problem mit dem Einbetten von Token. Ich habe alle 5 Schritte gemacht, die in diesem Link beschrieben werden (5 steps to push data into a dataset) und alles funktioniert perfekt: Datensätze erstellt, Tabellen erstellt und mit Daten ohne Probleme ausgefüllt.Generiere Einbettungstoken zum Erstellen des Problems

Ich habe eine Aufgabe zum Einbetten von Datensätzen (keine Berichte) auf der Webseite. Ich habe diese Seite gefunden (Power BI Embeded Sample), die zeigt, wie embed Bericht/Dataset/Dashboard/Kachel aussehen wird. Und auf dieser Seite gibt es ein Embed-Token. Ich googelte ein wenig und fand diese Seite (Generate Embed Token Example), die das Aussehen OH HTTP POST Anfragen beschreibt. Ich habe den Teil für Datensätze gemacht. Hier ist mein Code Beispiel:

private static void generateEmbedToken() 
    { 
     // TokenCredentials Initializes a new instance of the 
     // Microsoft.Rest.TokenCredentials class with 
     // the given 'Bearer' token. 
     var credentials = new TokenCredentials(token); 
     // Initialize PowerBIClient with credentials 
     var powerBIclient = new Microsoft.PowerBI.Api.V2.PowerBIClient(credentials) 
     { 
      // BaseUri is the api endpoint, default is https://api.powerbi.com 
      BaseUri = new Uri("https://api.powerbi.com") 
     }; 
     try 
     { 
      // Create body where accessLevel = View, datasetId = "" by default 
      var requestParameters = new GenerateTokenRequest(TokenAccessLevel.Create, datasetId, true); 
      // Generate EmbedToken This function sends the POST message 
      //with all parameters and returns the token 
      EmbedToken token = powerBIclient.Reports.GenerateTokenForCreate(requestParameters); 
      embedToken = token.Token; 
     } 
     catch (Exception exc) 
     { 
      Console.WriteLine(exc.ToString()); 
     } 
    } 

und ich als nächstes eine Fehlermeldung anzeigt:

Microsoft.Rest.HttpOperationException: Operation returned an invalid status code 'NotFound' 
    at Microsoft.PowerBI.Api.V2.Reports.<GenerateTokenForCreateWithHttpMessagesAsync>d__8.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.PowerBI.Api.V2.ReportsExtensions.<GenerateTokenForCreateAsync>d__7.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.PowerBI.Api.V2.ReportsExtensions.GenerateTokenForCreate(IReports operations, GenerateTokenRequest requestParameters) 
    at PushDataApp.Program.generateEmbedToken() in C:\Users\PC\Documents\Visual Studio 2017\Projects\PushDataApp\PushDataApp\Program.cs:line 388 

hier ist Zeile 388:

EmbedToken token = powerBIclient.Reports.GenerateTokenForCreate(requestParameters); 

Ich weiß nicht, warum es passiert. Ich nahm diesen Code von hier (Generate Embed Token Example), aber ich habe einige Änderungen für meine Zwecke (weil ich Datensatz brauche und nicht melden).

Ich werde jede Hilfe zu schätzen wissen.

Antwort

0

Ich bin auf einen ähnlichen Fehler gestoßen, als ich versucht habe, Power BI einzubetten. Ich empfehle, ein Tool wie Fiddler zu verwenden, um die Kommunikation zwischen Ihrer Anwendung und Power BI abzufangen und den Fehlercode herauszufinden, der tatsächlich zurückgegeben wird.

Der folgende Artikel von Telerik zeigt, wie der Verkehr mit Fiddler abzufangen: Capturing Traffic from .NET Services with Fiddler

Verwandte Themen