Rozwiązywanie problemów z aplikacją osadzoną
W tym artykule omówiono niektóre typowe problemy, które mogą wystąpić podczas osadzania zawartości z usługi Power BI.
Narzędzia do rozwiązywania problemów
Śledzenie Fiddler
Fiddler to bezpłatne narzędzie firmy Telerik, które monitoruje ruch HTTP. Za pomocą interfejsów API usługi Power BI można zobaczyć ruch z komputera klienckiego. To narzędzie może wyświetlać błędy i inne powiązane informacje.
F12 w przeglądarce na potrzeby debugowania frontonu
Klucz F12 uruchamia okno dewelopera w przeglądarce. To narzędzie umożliwia zapoznanie się z ruchem sieciowym i wyświetlenie innych cennych informacji.
Wyodrębnianie szczegółów błędu z odpowiedzi usługi Power BI
Ten fragment kodu pokazuje, jak wyodrębnić szczegóły błędu z wyjątku 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;
}
Zalecamy rejestrowanie identyfikatora żądania (i szczegóły błędu na potrzeby rozwiązywania problemów). Podaj identyfikator żądania podczas zbliżania się do pomocy technicznej firmy Microsoft.
Rejestracja aplikacji
Niepowodzenie rejestracji aplikacji
Komunikaty o błędach w witrynie Azure Portal lub na stronie rejestracji aplikacji Power BI powiadomią Cię, jeśli nie masz wystarczających uprawnień do zarejestrowania aplikacji. Aby zarejestrować aplikację, musisz być administratorem w dzierżawie firmy Microsoft Entra lub rejestracje aplikacji muszą być włączone dla użytkowników niebędących administratorami.
Usługa Power BI nie jest wyświetlana w witrynie Azure Portal podczas rejestrowania nowej aplikacji
Co najmniej jeden użytkownik musi być zarejestrowany w usłudze Power BI. Jeśli nie widzisz usługi Power BI na liście interfejsów API, żaden użytkownik nie jest zarejestrowany do Power BI.
Jaka jest różnica między identyfikatorem obiektu aplikacji a identyfikatorem obiektu podmiotu zabezpieczeń?
Podczas rejestrowania aplikacji Microsoft Entra istnieją dwa parametry: identyfikator obiektu i. W tej sekcji opisano przeznaczenie każdego parametru i sposób uzyskiwania go.
Identyfikator obiektu aplikacji
Identyfikator obiektu aplikacji, znany również jako identyfikator obiektu , jest unikatowym identyfikatorem obiektu aplikacji Microsoft Entra.
Aby uzyskać identyfikator obiektu aplikacji, przejdź do aplikacji Microsoft Entra i skopiuj ją z Overview.
Identyfikator podmiotu głównego
Identyfikator obiektu głównego, znany również jako identyfikator obiektu , jest unikatowym identyfikatorem obiektu głównego jednostki usługi powiązanego z aplikacją Microsoft Entra.
Aby uzyskać identyfikator obiektu głównego, przejdź do aplikacji Microsoft Entra i z Przegląd, wybierz link aplikacji w Zarządzana aplikacja w katalogu lokalnym.
W sekcji właściwości skopiuj identyfikator obiektu .
Uwierzytelnianie
Uwierzytelnianie nie powiodło się z AADSTS70002 lub AADSTS50053
(AADSTS70002: Błąd podczas sprawdzania poprawności poświadczeń. AADSTS50053: próbowano zalogować się zbyt wiele razy przy użyciu niepoprawnego identyfikatora użytkownika lub hasła)
Jeśli używasz uwierzytelniania bezpośredniego usługi Power BI Embedded i firmy Microsoft Entra, podczas próby zalogowania się może zostać wyświetlony komunikat podobny do poprzedniego, ponieważ bezpośrednie uwierzytelnianie nie jest włączone.
Bezpośrednie uwierzytelnianie można włączyć ponownie przy użyciu zasad firmy Microsoft Entra, które są ograniczone do organizacji, lub jednostki usługi.
Zalecamy włączenie tych zasad tylko dla poszczególnych aplikacji.
Aby utworzyć te zasady, musisz być administratorem globalnym dla katalogu, w którym tworzysz zasady i przypisujesz je. Oto przykładowy skrypt do tworzenia polityki dla tej aplikacji i przypisywania jej do SP:
Uruchom następujące polecenia programu PowerShell wiersz po wierszu (upewniając się, że zmienna
$sp
nie ma więcej niż jednej aplikacji w wyniku).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
Po przypisaniu polityki poczekaj około 15–20 sekund na propagację przed rozpoczęciem testowania.
Generowanie tokenu kończy się niepowodzeniem w przypadku zapewnienia efektywnej tożsamości
GenerateToken
może zakończyć się niepowodzeniem z obowiązującą tożsamością podaną z kilku różnych powodów:
- Model semantyczny nie obsługuje efektywnej tożsamości.
- Nie podano nazwy użytkownika.
- Rola nie została podana.
-
DatasetId
nie podano. - Użytkownik nie ma odpowiednich uprawnień.
Aby ustalić problem, spróbuj wykonać następujące czynności:
- Uruchom pobierz zestaw danych. Czy właściwość
IsEffectiveIdentityRequired
jest prawdziwa? - Nazwa użytkownika jest wymagana dla dowolnego
EffectiveIdentity
. - Jeśli
IsEffectiveIdentityRolesRequired
ma wartość true, wymagana jest Rola. -
DatasetId
jest wymagany dla dowolnegoEffectiveIdentity
. - W przypadku usług Analysis Services użytkownik główny musi być administratorem bramy.
AADSTS90094: Udzielenie wymaga uprawnień administratora
objawy :
Gdy użytkownik niebędący administratorem próbuje zalogować się do aplikacji po raz pierwszy podczas udzielania zgody, otrzymuje jeden z następujących błędów:
-
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.
Administrator może pomyślnie zalogować się i udzielić zgody.
przyczyna główna:
Zgoda użytkownika jest wyłączona dla najemcy.
istnieje kilka poprawek:
- Włącz zgodę użytkownika dla całego dzierżawcy (wszyscy użytkownicy, wszystkie aplikacje):
- W portalu Azure przejdź do Microsoft Entra ID>Użytkownicy i grupy>Ustawienia użytkownika.
- Włącz ustawienie Użytkownicy mogą wyrazić zgodę na aplikacje, które uzyskują dostęp do danych firmowych w ich imieniu i zapisz zmiany.
- Administrator może przyznać uprawnienia do aplikacji — dla całego dzierżawcy lub konkretnego użytkownika.
Błąd CS1061
Pobierz Microsoft.IdentityModel.Clients.ActiveDirectory, jeśli wystąpi następujący błąd:
'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?)
Token Microsoft Entra dla innego dzierżawcy (użytkownik gościnny)
W przypadku osadzania dla organizacji, aby zezwolić użytkownikom-gościom firmy Microsoft Entra na dostęp do zawartości, należy określić identyfikator dzierżawy w parametrze authorityUri
.
Adres URL do uwierzytelniania się w dzierżawie organizacji:
https://login.microsoftonline.com/common/v2.0
Adres URL uwierzytelniania użytkownika usługi Microsoft Entra gościa:
https://login.microsoftonline.com/<tenant ID>
Aby znaleźć identyfikator dzierżawcy, możesz użyć instrukcji w Znajdź identyfikator dzierżawcy Microsoft Entra i nazwę głównej domeny.
Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji wielotenantowej.
Źródła danych
ISV chce mieć różne poświadczenia dla tego samego źródła danych
Źródło danych może mieć jeden zestaw poświadczeń dla jednego użytkownika głównego. Jeśli musisz użyć różnych poświadczeń, utwórz więcej użytkowników głównych. Następnie przypisz różne poświadczenia do poszczególnych kontekstów użytkowników głównych i osadź przy użyciu tokenu Microsoft Entra tego użytkownika.
Rozwiązywanie problemów z aplikacją osadzoną za pomocą obiektu IError
Użyj obiektu IError zwróconego przez zdarzenie błędu z zestawu SDK języka JavaScript, aby debugować aplikację i lepiej zrozumieć przyczynę błędów.
Po uzyskaniu obiektu IError należy zapoznać się z odpowiednią tabelą typowych błędów, która pasuje do używanego typu osadzania. Porównaj właściwości IError z tymi w tabeli i znajdź możliwe przyczyny niepowodzenia.
Typowe błędy podczas osadzania dla użytkowników usługi Power BI
Komunikat | Szczegółowy komunikat | Kod błędu | Możliwe przyczyny |
---|---|---|---|
Token wygasł | Token dostępu wygasł, prześlij ponownie przy użyciu nowego tokenu dostępu | 403 | Wygasły token |
PowerBIEntityNotFound | Pobieranie raportu nie powiodło się | 404 | |
Nieprawidłowe parametry | nie określono parametru powerbiToken | N/A | |
ŁadowanieRaportuNiepowiodłoSię | Nie udało się zainicjować; nie udało się rozwiązać klastra | 403 | |
PowerBINotAuthorizedException | Pobieranie raportu nie powiodło się | 401 | |
Token wygasł | Token dostępu wygasł, prześlij ponownie przy użyciu nowego tokenu dostępu. Nie można renderować wizualizacji raportu zatytułowanej: tytuł wizualizacji | N/A | |
OpenConnectionError | Nie można wyświetlić wizualizacji. Nie można renderować wizualizacji raportu zatytułowanej: tytuł wizualizacji | N/A | Pojemność została wstrzymana lub usunięta, gdy raport związany z pojemnością był otwarty w sesji |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Nie można załadować schematu modelu skojarzonego z tym raportem. Upewnij się, że masz połączenie z serwerem i spróbuj ponownie. | N/A |
Typowe błędy podczas osadzania dla użytkowników spoza usługi Power BI (przy użyciu tokenu osadzania)
Komunikat | Szczegółowy komunikat | Kod błędu | Możliwe przyczyny |
---|---|---|---|
Token wygasł | Token dostępu wygasł, prześlij ponownie przy użyciu nowego tokenu dostępu | 403 | Wygasły token |
Nie udało się wczytać raportu | Pobieranie raportu nie powiodło się | 404 | |
ŁadowanieRaportuNiepowiodłoSię | Pobieranie raportu nie powiodło się | 403 | Identyfikator raportu nie jest zgodny z tokenem |
Nie udało się załadować raportu | Pobieranie raportu nie powiodło się | 500 | Podany identyfikator w raporcie nie jest GUID-em. |
Nieprawidłowe parametry | nie określono parametru powerbiToken | N/A | |
Nie udało się załadować raportu | Nie udało się zainicjować — nie rozpoznano klastra | 403 | Nieprawidłowy typ tokenu lub nieprawidłowy token |
PowerBINotAuthorizedException | Pobieranie raportu nie powiodło się | 401 | Nieprawidłowy/nieautoryzowany identyfikator grupy |
Token wygasł | Token dostępu wygasł, prześlij ponownie przy użyciu nowego tokenu dostępu. Nie można wyświetlić wizualizacji raportu pod tytułem: tytuł wizualizacji | N/A | |
OpenConnectionError | Nie można wyświetlić wizualizacji. Nie można renderować wizualizacji raportu zatytułowanej: tytuł wizualizacji | N/A | Pojemność została wstrzymana lub usunięta, gdy raport związany z pojemnością był otwarty w sesji |
KontenerEksploracji_NieUdałoSięZaładowaćModelu_DomyślneSzczegóły | Nie można załadować schematu modelu skojarzonego z tym raportem. Upewnij się, że masz połączenie z serwerem i spróbuj ponownie. | N/A |
Pobieranie raportu kończy się niepowodzeniem — błąd 401 — samodzielne rozwiązywanie problemów
W scenariuszu użytkownik jest właścicielem danych, czasami użytkownicy otrzymają błąd 401, który rozwiązuje się po dokonaniu dostępu do portalu usługi Power BI. Po wystąpieniu błędu 401 dodaj w aplikacji wywołanie RefreshUser Permissions, jak wyjaśniono w Update user permissions.
Modele semantyczne
Zarządzanie częścią danych, które użytkownicy mogą zobaczyć
Każdy użytkownik z uprawnieniami do odczytu dla modelu semantycznego może zobaczyć cały schemat (tabele, kolumny i miary) i wszystkie dane. Nie można kontrolować uprawnień do wyświetlania danych pierwotnych i zagregowanych oddzielnie w tym samym modelu semantycznym.
Aby zarządzać częścią danych, które użytkownicy mogą wyświetlać, użyj jednej z następujących metod:
Filtrowanie na poziomie wiersza przy użyciu usługi Power BI zabezpieczeń na poziomie wiersza (RLS).
Rozdziel dane na różne modele semantyczne. Na przykład można utworzyć model semantyczny, który zawiera tylko zagregowane dane i przyznać użytkownikom dostęp tylko do tego modelu semantycznego.
Renderowanie zawartości
Aby rozwiązać problemy z renderowaniem w osadzonych elementach usługi Power BI (takich jak raporty i pulpity nawigacyjne), zapoznaj się z tą sekcją.
Sprawdź, czy element usługi Power BI jest ładowany w usłudze Power BI
Aby wykluczyć problemy z aplikacją lub osadzanymi interfejsami API, sprawdź, czy element można wyświetlić w usłudze Power BI (powerbi.com).
Sprawdź, czy element Power BI ładuje się w środowisku testowym osadzonej analityki Power BI.
Aby wykluczyć problemy z aplikacją, sprawdź, czy element Power BI można wyświetlić w środowisku testowym osadzonych analiz Power BI.
Sprawdź, czy token dostępu nie wygaśnie
Ze względów bezpieczeństwa, token dostępu (token Entra firmy Microsoft lub token osadzania) ma ograniczony okres istnienia. W razie potrzeby należy stale monitorować token dostępu i odświeżać go. Aby uzyskać więcej informacji, zobacz Odśwież token dostępu.
Wydajność
Aby uzyskać najlepszą wydajność osadzonej zawartości, zalecamy wykonanie najlepszych rozwiązań analizy osadzonej usługi Power BI.
Powiązana zawartość
Power BI Embedded — często zadawane pytania
Więcej pytań? Zapytaj społeczność usługi Power BI