显示没有访问令牌的Power BI报告?

问题描述 投票:-1回答:1

亲爱的,我正在根据用户选择的过滤条件显示PBI报告。为了显示报告,我在C#中使用Microsoft Power BI API。它工作正常,但突然开始给我以下错误:

您已超过可在共享容量上生成的嵌入令牌数量。您需要购买Azure容量才能生成嵌入令牌。见https://go.microsoft.com/fwlink/?linkid=868976 \

using (var powerBiClient = new PowerBIClient(new Uri(apiUrl), tokenCredentials))
{
   var reports = powerBiClient.Reports.GetReportsInGroupAsync(groupId).GetAwaiter().GetResult();
   var report = reports.Value.FirstOrDefault(rep => rep.Id == reportId);
   var datasets = powerBiClient.Datasets.GetDatasetByIdInGroupAsync(groupId, report.DatasetId).GetAwaiter().GetResult();
   var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
   var tokenResponse = powerBiClient.Reports.GenerateTokenInGroupAsync(groupId, report.Id, generateTokenRequestParameters).GetAwaiter().GetResult();
}

我在最后一行(即GenerateTokenInGroupAsync)收到错误。为了解决这个问题,建议获得PBI专业版许可证,但在我的情况下是不可能的。因此,有人可以推荐我任何其他方式来完成我的工作,而不是发布到Web并获取嵌入式URL,因为我需要根据用户选择过滤报告。

我是否可以在没有访问令牌的情况下访问和显示报告,或者在没有Pro许可证的情

powerbi powerbi-embedded
1个回答
2
投票

这不是关于Pro许可证,而是关于Premium。您已经拥有Pro,否则您将无法使用组(工作区),这是Pro专用功能(尽管可能只是试用版)。然而,GenerateTokenInGroup与高级能力有关。如果没有为工作区分配容量,则可以生成有限数量的令牌。见Create a dedicated capacity

使用具有PRO许可证的嵌入令牌用于开发测试,因此Power BI主帐户或服务主体可以生成的嵌入令牌的数量是有限的。专用容量需要嵌入生产环境中。使用专用容量可以生成多少嵌入令牌没有限制。

因此,您在没有分配专用容量的情况下进入生产阶段,并且达到了可以生成的令牌限制。您必须购买Power BI Premium容量并将其分配给此工作区(这将允许您继续而不更改代码),或者根本不再使用嵌入式令牌。

您可以改用AAD令牌。在embedConfiguration中将tokenType更改为TokenType.AAd并使用从ADAL的AcquireTokenAsync方法获得的标记(用于构建tokenCredentials的方法传递给PowerBIClient的构造函数)。

© www.soinside.com 2019 - 2024. All rights reserved.