亲爱的, 我正在根据用户选择的过滤条件显示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,因为我需要根据用户选择来过滤报告。
我可以访问和显示没有访问令牌的报告,也可以获取没有专业版许可证的令牌吗?
答案 0 :(得分:1)
这与Pro许可证无关,而与Premium有关。您已经拥有Pro,否则您将无法使用组(工作区),这是Pro的唯一功能(不过,它可能只是试用版)。但是,GenerateTokenInGroup与高级功能有关。如果没有为工作空间分配容量,则只能生成数量有限的令牌。参见Create a dedicated capacity:
将带有PRO许可证的嵌入令牌用于开发测试,因此Power BI主帐户或服务主体可以生成的嵌入令牌的数量受到限制。专用功能需要嵌入生产环境中。您可以使用专用容量生成多少个嵌入令牌没有限制。
因此,您没有分配专用容量就投产了,并且达到了可以生成的令牌数量的上限。您必须购买Power BI Premium容量并将其分配给该工作空间(这将使您无需更改代码即可继续操作),或者完全停止使用嵌入式令牌。
您可以改用AAD令牌。在embedConfiguration中将tokenType
更改为TokenType.AAd
,并使用从ADAL的AcquireTokenAsync
方法获得的令牌(您用来构造tokenCredentials
的令牌传递给{{ 1}}的构造函数。