Power BI REST API ExportToFileInGroup не работает
Я могу программно войти в клиент PowerBI , собрать свои рабочие области, а также получить определенный отчет из определенной рабочей области. Мне нужно программно отобразить этот отчет в файл .pdf или .xlsx. Якобы это возможно с
ExportToFileInGroup
/ методы . Я даже создал очень простой отчет без каких-либо параметров. Я могу встроить это, используя пример приложения отсюда . Так что, по крайней мере, это говорит мне, что у меня есть то, что мне нужно настроить в бэкэнде. Но это не удается, когда я пытаюсь запустить
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, вот наша встроенная емкость:
После того, как это было реализовано, никаких изменений. Такая же точная ошибка.
1 ответ
Оказывается, проблема была на нашей стороне, точнее, с настройками безопасности / брандмауэра. Вот точная цитата нашего сетевого гуру.
«После некоторого дополнительного расследования мы определили, что наш брандмауэр вызывал эту проблему, когда прерывал соединение SSL. Мы смогли добавить обход для URL-адреса, и теперь он работает, как ожидалось».