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



Dears,我显示基于用户选择的筛选条件的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许可证的情况下获取令牌?

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

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

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

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

最新更新