【发布时间】:2021-05-26 12:48:39
【问题描述】:
我能够以编程方式登录PowerBI Client,收集我的工作区以及从特定工作区获取特定报告。 我需要以编程方式将该报告呈现为 .pdf 或 .xlsx 文件。据称ExportToFileInGroup/ExportToFileInGroupAsyncmethods 可以做到这一点。我什至创建了一个非常简单的报告,没有任何参数。我可以使用来自here 的示例应用程序嵌入这个。所以这至少告诉我我在后端有我需要的设置。但是当我尝试运行ExportToFileInGroupAsync 方法时它失败了(代码下面的错误。)
我的代码是:
var accessToken = await tokenAcquisition.GetAccessTokenForUserAsync(new string[] {
PowerBiScopes.ReadReport,
PowerBiScopes.ReadDataset,
});
var userInfo = await graphServiceClient.Me.Request().GetAsync();
var userName = userInfo.Mail;
AuthDetails authDetails = new AuthDetails {
UserName = userName,
AccessToken = accessToken,
};
var credentials = new TokenCredentials($"{accessToken}", "Bearer");
PowerBIClient powerBIClient = new PowerBIClient(credentials);
var groups = await powerBIClient.Groups.GetGroupsAsync();
var theGroup = groups.Value
.Where(x => x.Name == "SWIFT Application Development")
.FirstOrDefault();
var groupReports = await powerBIClient.Reports.GetReportsAsync(theGroup.Id);
var theReport = groupReports.Value
.Where(x => x.Name == "No Param Test")
.FirstOrDefault();
var exportRequest = new ExportReportRequest {
Format = FileFormat.PDF,
};
string result = "";
try {
var response = await powerBIClient.Reports.ExportToFileInGroupAsync(theGroup.Id, theReport.Id, exportRequest);
result = response.ReportId.ToString();
} catch (Exception e) {
result = e.Message;
}
return result;
它到达try 块中的行,然后抛出以下错误:
发送请求时出错。
无法从传输连接读取数据:现有连接被远程主机强行关闭..
更新 关于@AndreyNikolov 的问题,这是我们的嵌入式容量:
实施后,没有任何变化。完全相同的错误。
【问题讨论】:
-
是否为报表的工作区分配了专用容量?
-
@AndreyNikolov 我相信是的。是否有我可以访问的页面或可以拨打电话来验证这一点?我不是管理员,但与他有联系。
-
@AndreyNikolov 我也假设是的,因为上面提到的 Microsoft 示例有效。当我(不是管理员)访问 app.powerbi.com/admin-portal/capacities/capacitiesList/azure 时,我只看到显示“了解更多”的图形。
-
@AndreyNikolov 我已更新帖子以显示容量。
标签: rest powerbi powerbi-api