0

我能够以编程方式登录PowerBI 客户端,收集我的工作区以及从特定工作区获取特定报告。 我需要以编程方式将该报告呈现为 .pdf 或 .xlsx 文件。 据称,这可以通过ExportToFileInGroup/ExportToFileInGroupAsync 方法实现。我什至创建了一个非常简单的报告,没有任何参数。我可以使用此处的示例应用程序嵌入它。所以这至少告诉我我在后端有我需要的设置。但是当我尝试运行该方法时它失败了(代码下面的错误。)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 问题有关,这是我们的嵌入式容量: 在此处输入图像描述

实施后,没有任何变化。完全相同的错误。

4

1 回答 1

0

原来问题出在我们这边,更具体地说,是安全/防火墙设置。这是我们的网络专家的确切报价。

“经过进一步调查,我们确定我们的防火墙在终止 SSL 连接时导致了这个问题。我们能够为 URL 添加旁路,它现在按预期工作。”

于 2021-06-01T17:54:33.697 回答