亲爱的,我正在根据用户选择的过滤条件显示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许可证的情
这不是关于Pro许可证,而是关于Premium。您已经拥有Pro,否则您将无法使用组(工作区),这是Pro专用功能(尽管可能只是试用版)。然而,GenerateTokenInGroup与高级能力有关。如果没有为工作区分配容量,则可以生成有限数量的令牌。见Create a dedicated capacity:
使用具有PRO许可证的嵌入令牌用于开发测试,因此Power BI主帐户或服务主体可以生成的嵌入令牌的数量是有限的。专用容量需要嵌入生产环境中。使用专用容量可以生成多少嵌入令牌没有限制。
因此,您在没有分配专用容量的情况下进入生产阶段,并且达到了可以生成的令牌限制。您必须购买Power BI Premium容量并将其分配给此工作区(这将允许您继续而不更改代码),或者根本不再使用嵌入式令牌。
您可以改用AAD令牌。在embedConfiguration中将tokenType
更改为TokenType.AAd
并使用从ADAL的AcquireTokenAsync
方法获得的标记(用于构建tokenCredentials
的方法传递给PowerBIClient
的构造函数)。