Troubleshoot your embedded application (Устранение неполадок с внедренным приложением)
В этой статье рассматриваются некоторые распространенные проблемы, которые могут возникнуть при внедрении содержимого из Power BI.
Средства диагностики
Трассировка Fiddler.
Fiddler — это бесплатный инструмент от компании Telerik, который отслеживает трафик HTTP. Вы можете увидеть трафик с API Power BI с клиентского компьютера. Это средство может отображать ошибки и другие связанные сведения.
F12 в браузере для отладки внешнего интерфейса
Ключ F12 запускает окно разработчика в браузере. Это средство позволяет просматривать сетевой трафик и просматривать другие ценные сведения.
Извлечение сведений об ошибке из ответа Power BI
В этом фрагменте кода показано, как извлечь сведения об ошибке из исключения HTTP:
public static string GetExceptionText(this HttpOperationException exc)
{
var errorText = string.Format("Request: {0}\r\nStatus: {1} ({2})\r\nResponse: {3}",
exc.Request.Content, exc.Response.StatusCode, (int)exc.Response.StatusCode, exc.Response.Content);
if (exc.Response.Headers.ContainsKey("RequestId"))
{
var requestId = exc.Response.Headers["RequestId"].FirstOrDefault();
errorText += string.Format("\r\nRequestId: {0}", requestId);
}
return errorText;
}
Мы рекомендуем ведения журнала идентификатора запроса (и сведения об ошибке для устранения неполадок). Укажите идентификатор запроса при приближении к поддержке Майкрософт.
Регистрация приложения
Сбой регистрации приложения
Сообщения об ошибках в портал Azure или на странице регистрации приложения Power BI уведомляют вас, если у вас нет достаточных привилегий для регистрации приложения. Чтобы зарегистрировать приложение, необходимо быть администратором в клиенте Microsoft Entra, или регистрация приложений должна быть включена для пользователей, не являющихся администраторами.
служба Power BI не отображается в портал Azure при регистрации нового приложения
Для Power BI необходимо зарегистрироваться по крайней мере один пользователь. Если вы не видите служба Power BI в списке API, пользователь не зарегистрировался для Power BI.
Какова разница между идентификатором объекта приложения и идентификатором основного объекта?
При регистрации приложения Microsoft Entra существует два параметра, которые называются идентификатором объекта. В этом разделе объясняется назначение каждого параметра и его получение.
Идентификатор объекта приложения
Идентификатор объекта приложения, также известный как идентификатор объекта, является уникальным идентификатором объекта приложения Microsoft Entra.
Чтобы получить идентификатор объекта приложения, перейдите к приложению Microsoft Entra и скопируйте его из обзора.
Идентификатор основного объекта
Идентификатор основного объекта, также известный как идентификатор объекта, является уникальным идентификатором объекта субъекта-службы, связанного с приложением Microsoft Entra.
Чтобы получить идентификатор основного объекта, перейдите к приложению Microsoft Entra и в разделе "Обзор" выберите ссылку приложения в управляемом приложении в локальном каталоге.
Скопируйте идентификатор объекта из раздела "Свойства".
Проверка подлинности
Authentication failed with AADSTS70002 or AADSTS50053 (При аутентификации произошла ошибка AADSTS70002 или AADSTS50053)
(AADSTS70002. Ошибка проверки учетных данных. AADSTS50053. Вы пытались выполнить вход слишком много раз с неправильным идентификатором пользователя или паролем)
Если вы используете Прямую проверку подлинности Power BI Embedded и Microsoft Entra, при попытке входа может появиться сообщение, например предыдущее сообщение, так как прямая проверка подлинности не включена.
Вы можете включить прямую проверку подлинности с помощью политики Microsoft Entra, которая область в организации или субъекта-службы.
Мы рекомендуем включить эту политику только на основе каждого приложения.
Чтобы создать эту политику, необходимо быть глобальным Администратор istrator для каталога, в котором вы создаете политику и назначаете ее. Ниже приведен пример скрипта для создания политики и назначения его поставщику для этого приложения:
Установите пакет SDK Для Microsoft Graph PowerShell.
Выполните следующие команды PowerShell по строке (убедитесь, что переменная
$sp
не имеет более одного приложения в результате).Connect-MgGraph -Scopes "Directory.Read.All","Policy.ReadWrite.ApplicationConfiguration" $sp = Get-MgServicePrincipal -Filter "DisplayName eq 'Name_Of_Application'" $policy = New-MgBetaPolicyActivityBasedTimeoutPolicy -Definition @("{`"AllowCloudPasswordValidation`":true}") ` -DisplayName EnableDirectAuth -IsOrganizationDefault:$false $params = @{ "@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/$policy.Id" } New-MgBetaServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId $sp.Id ` -BodyParameter $params
После назначения политики дождитесь примерно 15–20 секунд распространения перед тестированием.
Сбой создания маркера при предоставлении эффективного удостоверения
GenerateToken
Может завершиться ошибкой с эффективным удостоверением, предоставленным по нескольким причинам:
- Семантическая модель не поддерживает эффективное удостоверение.
- Имя пользователя не было предоставлено.
- Роль не была предоставлена.
DatasetId
не было предоставлено.- У пользователя нет правильных разрешений.
Чтобы определить проблему, выполните следующие действия.
- Запустите набор данных. Верно ли свойство
IsEffectiveIdentityRequired
? - Для любого
EffectiveIdentity
пользователя требуется имя пользователя. - Если
IsEffectiveIdentityRolesRequired
задано значение true, требуется роль. DatasetId
требуется для любогоEffectiveIdentity
.- Для служб Analysis Services главный пользователь должен быть администратором шлюза.
AADSTS90094: предоставление требует разрешения администратора
Симптомы
Когда пользователь, отличный от администратора, впервые пытается войти в приложение при предоставлении согласия, то получает одну из следующих ошибок:
-
ConsentTest needs permission to access resources in your organization that only an admin can grant. Ask an admin to grant permission to this app before you can use it.
-
AADSTS90094: The grant requires admin permission.
Пользователь администратора может войти и предоставить согласие успешно.
Первопричина.
Согласие пользователя отключено для клиента.
Возможны несколько исправлений:
- Включите согласие пользователя для всего клиента (все пользователи, все приложения):
- В портал Azure перейдите к параметрам пользователей и групп> пользователей идентификатора>Microsoft Entra.
- Включите пользователям согласие на доступ к корпоративным данным от имени приложений и сохраните изменения.
- Администратор может предоставить приложениям разрешения — либо для всего клиента, либо для конкретного пользователя.
Ошибка CS1061
Скачайте Microsoft.IdentityModel.Clients.ActiveDirectory , если возникает следующая ошибка:
'AuthenticationContext' does not contain a definition for 'AcquireToken' and no accessible 'AcquireToken' accepting a first argument of type 'AuthenticationContext' could be found (are you missing a using directive or an assembly reference?)
Токен Microsoft Entra для другого клиента (гостевого пользователя)
При внедрении для организации, чтобы разрешить гостевым пользователям Microsoft Entra доступ к содержимому, необходимо указать идентификатор клиента в параметреauthorityUri
.
URL-адрес проверки подлинности в клиенте вашей организации:
https://login.microsoftonline.com/common/v2.0
URL-адрес проверки подлинности гостевого пользователя Microsoft Entra:
https://login.microsoftonline.com/<tenant ID>
Чтобы найти идентификатор клиента, можно использовать инструкции в разделе "Поиск идентификатора клиента Microsoft Entra" и основного доменного имени.
Дополнительные сведения см. в разделе "Создание мультитенантного приложения".
Источники данных
IsV хочет иметь разные учетные данные для одного источника данных
Источник данных может иметь один набор учетных данных для одного главного пользователя. Если вам нужно использовать разные учетные данные, создайте больше основных пользователей. Затем назначьте разные учетные данные каждому из контекстов основных пользователей и встраивайте их с помощью маркера Microsoft Entra этого пользователя.
Устранение неполадок внедренного приложения с помощью объекта IError
Используйте объект IError, возвращаемый событием ошибки из пакета SDK JavaScript, чтобы отладить приложение и лучше понять причину ошибок.
После получения объекта IError необходимо просмотреть соответствующую таблицу распространенных ошибок, которая соответствует используемому типу внедрения. Сравните свойства IError с теми из них в таблице и найдите возможные причины сбоя.
Типичные ошибки при внедрении для пользователей Power BI
Сообщение | Подробное сообщение | Код ошибки | Возможные причины |
---|---|---|---|
TokenExpired | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа | 403 | Истек срок действия маркера |
PowerBIEntityNotFound | Сбой получения отчета | 404 | |
Недопустимые параметры | Параметр powerbiToken не указан | Н/П | |
LoadReportFailed | Не удалось инициализировать кластер. Не удалось разрешить кластер | 403 | |
PowerBINotAuthorizedException | Сбой получения отчета | 401 | |
TokenExpired | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа. Не удалось отобразить визуальный элемент отчета: название визуального элемента | Н/П | |
Open Подключение ionError | Не удается отобразить визуальный элемент. Не удалось отобразить визуальный элемент отчета: название визуального элемента | Н/П | Емкость приостановлена или удалена при открытии отчета, связанного с емкостью, в сеансе |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Не удалось загрузить схему модели, связанную с этим отчетом. Убедитесь, что у вас есть подключение к серверу и повторите попытку. | Н/П |
Типичные ошибки при внедрении для пользователей, отличных от Power BI (с помощью маркера внедрения)
Сообщение | Подробное сообщение | Код ошибки | Причины |
---|---|---|---|
TokenExpired | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа | 403 | Истек срок действия маркера |
LoadReportFailed | Сбой получения отчета | 404 | |
LoadReportFailed | Сбой получения отчета | 403 | Идентификатор отчета не соответствует маркеру |
LoadReportFailed | Сбой получения отчета | 500 | Предоставленный идентификатор отчета не является идентификатором GUID |
Недопустимые параметры | Параметр powerbiToken не указан | Н/П | |
LoadReportFailed | Не удалось инициализировать кластер. Не удалось разрешить кластер | 403 | Неправильный тип маркера или недопустимый маркер |
PowerBINotAuthorizedException | Сбой получения отчета | 401 | Неправильный или несанкционированный идентификатор группы |
TokenExpired | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа. Не удалось отобразить визуальный элемент отчета: название визуального элемента | Н/П | |
Open Подключение ionError | Не удается отобразить визуальный элемент. Не удалось отобразить визуальный элемент отчета: название визуального элемента | Н/П | Емкость приостановлена или удалена при открытии отчета, связанного с емкостью, в сеансе |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Не удалось загрузить схему модели, связанную с этим отчетом. Убедитесь, что у вас есть подключение к серверу и повторите попытку. | Н/П |
Сбой получения отчета — ошибка 401 — разрешить себя
В сценарии с данными пользователь может получить ошибку 401, которая устраняется после доступа к порталу Power BI. При возникновении ошибки 401 добавьте вызов "Разрешения UpdateUser" в приложении, как описано в разделе "Обновление разрешений пользователя".
Семантические модели
Управление частью данных, которые пользователи могут видеть
Любой пользователь с разрешениями на чтение для семантической модели может видеть всю схему (таблицы, столбцы и меры) и все данные. Нельзя управлять разрешениями просмотра необработанных и агрегированных данных отдельно в одной семантической модели.
Чтобы управлять частью данных, которые пользователи могут просматривать, используйте один из следующих методов:
Фильтрация на уровне строк с помощью безопасности уровня строк Power BI (RLS).
Разделение данных на разные семантические модели. Например, можно создать семантику модели, которая содержит только агрегированные данные и предоставить пользователям доступ только к этой семантической модели.
Отрисовка содержимого
Чтобы устранить проблемы с отрисовкой в внедренных элементах Power BI (например, отчетах и панелях мониторинга), ознакомьтесь с этим разделом.
Убедитесь, что элемент Power BI загружается в служба Power BI
Чтобы исключить проблемы с приложением или внедренными API, убедитесь, что элемент можно просмотреть в служба Power BI (powerbi.com).
Убедитесь, что элемент Power BI загружается на игровой площадке встроенной аналитики Power BI
Чтобы исключить проблемы с приложением, убедитесь, что элемент Power BI можно просмотреть на игровой площадке встроенной аналитики Power BI.
Убедитесь, что срок действия маркера доступа не истекает
В целях безопасности маркеры доступа (маркер Microsoft Entra или токен внедрения) имеют ограниченное время существования. При необходимости следует постоянно отслеживать маркер доступа и обновлять его. Дополнительные сведения см. в разделе "Обновление маркера доступа".
Производительность
Чтобы получить наиболее подходящее внедренное содержимое, рекомендуется следовать рекомендациям по встроенной аналитике Power BI.
Средство установки внедрения
Вы можете быстро скачать пример приложения с помощью средства установки внедрения. Затем можно сравнить приложение с примером.
Необходимые компоненты
Убедитесь, что у вас есть все необходимые предварительные требования перед использованием средства установки внедрения. Вам нужна учетная запись Power BI Pro и подписка Microsoft Azure .
- Если вы не зарегистрировались в Power BI Pro, зарегистрируйтесь на бесплатную пробную версию перед началом работы.
- Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Необходимо настроить собственный клиент Microsoft Entra.
- Требуется установить Visual Studio (версия 2013 или более поздняя).
Распространенные проблемы
Ниже приведены некоторые распространенные проблемы, которые могут возникнуть при тестировании с помощью средства установки внедрения:
Использование примера приложения Для внедрения для клиентов
Если вы работаете с интерфейсом внедрения для клиентов , сохраните и распакуйте файл PowerBI-Developer-Samples.zip . Затем откройте папку данных PowerBI-Developer-Samples-master\App Owns Data и запустите файл PowerBIEmbedded_AppOwnsData.sln .
- При выборе разрешений grant (шаг "Предоставление разрешений ") возникает следующая ошибка:
AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
Решение заключается в закрытии всплывающего окна, подождите несколько секунд и повторите попытку. Может потребоваться повторить это действие несколько раз. Интервал времени вызывает проблему от завершения процесса регистрации приложения до того, когда он доступен для внешних API.
- При запуске примера приложения отображается следующее сообщение об ошибке:
Password is empty. Please fill password of Power BI username in web.config.
Эта ошибка возникает, так как единственное значение, которое не внедряется в пример приложения, является вашим паролем пользователя. Откройте файл web.config в решении и заполните pbiPassword
поле паролем пользователя.
- Если возникает ошибка:
AADSTS50079: The user is required to use multi-factor authentication.
Необходимо использовать учетную запись Microsoft Entra, которая не включает многофакторную проверку подлинности.
Using the Embed for your organization sample application (Использование средства внедрения для примера приложения организации)
Если вы работаете с интерфейсом внедрения для организации , сохраните и распакуйте файл PowerBI-Developer-Samples.zip . Затем откройте папку PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app и запустите файл pbi-saas-embed-report.sln .
- При запуске примера приложения Внедрения для организации возникает следующая ошибка:
AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
Эта ошибка связана с тем, что URL-адрес перенаправления, указанный для приложения веб-сервера, отличается от URL-адреса примера. Если вы хотите зарегистрировать пример приложения, используйте https://localhost:13526/
в качестве URL-адреса перенаправления.
Если вы хотите изменить зарегистрированное приложение, обновите зарегистрированное приложение Microsoft Entra, чтобы оно предоставило доступ к веб-API.
Если вы хотите изменить профиль пользователя или данные Power BI, узнайте, как изменить данные Power BI.
- Если возникает ошибка:
AADSTS50079: The user is required to use multi-factor authentication.
Необходимо использовать учетную запись Microsoft Entra, которая не включает многофакторную проверку подлинности.
Дополнительные сведения см. в статье "Вопросы и ответы о Power BI Embedded".
Для получения дополнительной помощи обратитесь в службу поддержки или создайте запрос в службу поддержки через портал Azure и укажите сообщения об ошибках, которые вы столкнулись.
Связанный контент
Часто задаваемые вопросы о Power BI Embedded
Есть еще вопросы? Спросите Сообщество Power BI