#rest #powerbi #powerbi-api
Вопрос:
Я могу программно войти в клиент 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 resu<
Он доходит до строки в try
блоке, а затем выдает следующие ошибки:
При отправке запроса произошла ошибка.
Невозможно прочитать данные из транспортного соединения: Существующее соединение было принудительно закрыто удаленным хостом..
ОБНОВЛЕНИЕ, касающееся вопроса @AndreyNikolov, вот наш встроенный потенциал:
После того, как это было реализовано, никаких изменений не произошло. Та же самая точная ошибка.
Комментарии:
1. Есть ли выделенная емкость, выделенная для рабочей области отчета?
2. @AndreyNikolov Я так считаю. Есть ли страница, на которую я могу перейти, или звонок, который я могу сделать, чтобы убедиться в этом? Я не являюсь администратором, но поддерживаю с ним контакт.
3. @AndreyNikolov Я также предполагаю, что да, потому что приведенный выше пример Microsoft работает. Когда я (не администратор) захожу в app.powerbi.com/admin-portal/capacities/capacitiesList/azure Я вижу только рисунок, на котором написано «Узнайте больше».
4. @AndreyNikolov Я обновил пост, чтобы показать возможности.
Ответ №1:
Оказывается, проблема была на нашей стороне, точнее, в настройках безопасности/брандмауэра. Вот точная цитата из нашего сетевого гуру.
«После еще одного расследования мы определили, что наш брандмауэр вызывал эту проблему, когда он прерывал SSL-соединение. Мы смогли добавить обходной путь для URL-адреса, и теперь он работает так, как ожидалось».