不需要访问令牌即可显示Power BI报告?

3
亲爱的用户, 我正在根据用户选择的筛选条件展示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许可证的情况下访问和显示报告?
1个回答

4
这不是关于Pro许可证的问题,而是关于Premium的问题。您已经拥有了Pro,否则您将无法使用组(工作区),这是仅限Pro的功能(可能只是试用)。然而,在组中生成令牌与Premium容量相关。如果您的工作区没有分配容量,则可以生成有限数量的令牌。请参见创建专用容量

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

所以,如果您没有分配专用容量并且达到了可以生成的令牌限制,那么您必须购买Power BI Premium容量并将其分配给此工作区(这将允许您在不更改代码的情况下继续),或者停止完全使用嵌入式令牌。
你可以使用AAD令牌代替。在embedConfiguration中更改tokenTypeTokenType.AAd,并使用从ADAL的AcquireTokenAsync方法获取的令牌(用于构造传递给PowerBIClient构造函数的tokenCredentials)。

你必须要么购买 Power BI Premium 容量并将其分配给此工作区(这将允许你在不更改代码的情况下继续使用),要么完全停止使用嵌入式令牌。 如果您替换了基础主用户(创建一个新的 PRO 许可证)以获得另一个嵌入式令牌容量,那会怎样呢?这确实是可能的,但是否合法呢?我在文档中找不到任何明确否定这种行为的内容。 - blahblah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接