首页 > 解决方案 > 显示没有访问令牌的 Power BI 报表?

问题描述

亲爱的,我正在根据用户选择的过滤条件显示 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 Pro 许可证,但在我的情况下这是不可能的。所以有人可以推荐我任何其他方式来完成我的工作,而不是发布到 Web 并获取嵌入式 URL,因为我需要根据用户选择过滤报告。

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

标签: powerbipowerbi-embedded

解决方案


这不是关于 Pro 许可证,而是关于 Premium。您已经拥有 Pro,否则您将无法使用组(工作区),这是 Pro 独有的功能(不过,它可能只是试用版)。但是,GenerateTokenInGroup与高级容量有关。如果没有为您的工作区分配容量,您可以生成的令牌数量有限。请参阅创建专用容量

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

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

您可以改用 AAD 令牌。在embedConfiguration更改tokenTypeTokenType.AAd并使用您从 ADAL 的AcquireTokenAsync方法获得的令牌(您用来构造tokenCredentials传递给PowerBIClient的构造函数的令牌)。


推荐阅读