Rozwiązywanie problemów z osadzoną aplikacją

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 za pomocą narzędzia Fiddler

Fiddler to bezpłatne narzędzie firmy Telerik, które monitoruje ruch HTTP. Możesz zobaczyć ruch z interfejs API usługi Power BI z komputera klienckiego. To narzędzie może wyświetlać błędy i inne powiązane informacje.

Zrzut ekranu przedstawiający okno danych wyjściowych narzędzia Fiddler, które pokazuje ruch HTTP interfejs API usługi Power BI.

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.

Zrzut ekranu przedstawiający kartę Sieć okna dewelopera przeglądarki internetowej, na której jest wyświetlany ruch sieciowy.

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ługa Power BI na liście interfejsów API, żaden użytkownik nie jest zarejestrowany w usłudze Power BI.

Jaka jest różnica między identyfikatorem obiektu aplikacji a identyfikatorem obiektu podmiotu zabezpieczeń?

Podczas rejestrowania aplikacji Microsoft Entra istnieją dwa parametry nazywane identyfikatorem obiektu. 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 sekcji Przegląd.

Zrzut ekranu przedstawiający okno witryny Azure Portal z identyfikatorem obiektu w bloku Przegląd aplikacji Firmy Microsoft Entra.

Identyfikator obiektu podmiotu zabezpieczeń

Identyfikator obiektu głównego, znany również po prostu jako identyfikator obiektu, jest unikatowym identyfikatorem obiektu jednostki usługi skojarzonego z aplikacją Microsoft Entra.

Aby uzyskać identyfikator obiektu podmiotu zabezpieczeń, przejdź do aplikacji Microsoft Entra, a następnie w obszarze Przegląd wybierz link aplikacji w aplikacji zarządzanej w katalogu lokalnym.

Zrzut ekranu przedstawiający okno witryny Azure Portal z opcją Zarządzana aplikacja w katalogu lokalnym w bloku Przegląd aplikacji Microsoft Entra.

W sekcji Właściwości skopiuj identyfikator obiektu.

Zrzut ekranu przedstawiający okno witryny Azure Portal, które pokazuje identyfikator obiektu głównego w sekcji właściwości w bloku Przegląd aplikacji Microsoft Entra.

Uwierzytelnianie

Uwierzytelnianie nie powiodło się z błędem AADSTS70002 lub AADSTS50053

(AADSTS70002: Błąd podczas sprawdzania poprawności poświadczeń. AADSTS50053: Próbowano zalogować się zbyt wiele razy przy użyciu nieprawidłowego 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ć globalnym Administracja istratorem katalogu, w którym tworzysz zasady i przypisujesz je. Oto przykładowy skrypt do tworzenia zasad i przypisywania go do dostawcy usług dla tej aplikacji:

  1. Zainstaluj zestaw MICROSOFT Graph PowerShell SDK.

  2. Uruchom następujące polecenia programu PowerShell wiersz po wierszu (upewniając się, że zmienna $sp nie ma więcej niż jednej aplikacji w rezultacie).

    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 zasad 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 kilku różnych powodów podanych przez obowiązującą tożsamość:

  • 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 polecenie Pobierz zestaw danych. Czy właściwość IsEffectiveIdentityRequired jest prawdziwa?
  • Nazwa użytkownika jest wymagana dla dowolnego EffectiveIdentityelementu .
  • Jeśli IsEffectiveIdentityRolesRequired wartość jest prawdziwa, wymagana jest rola.
  • DatasetId jest wymagany dla dowolnego EffectiveIdentityelementu .
  • W przypadku usług Analysis Services użytkownik główny musi być administratorem bramy.

AADSTS90094: Wyrażanie zgody 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.
    

    Zrzut ekranu przedstawiający okno logowania w witrynie Azure Portal z wyświetlonym błędem uprawnień testu zgody.

Administrator może pomyślnie zalogować się i udzielić zgody.

Główna przyczyna:

Zgoda użytkownika jest wyłączona dla dzierżawy.

Możliwe jest kilka poprawek:

  • Włącz zgodę użytkownika dla całej dzierżawy (wszyscy użytkownicy, wszystkie aplikacje):
  1. W witrynie Azure Portal przejdź do pozycji Microsoft Entra ID>Użytkownicy i grupy>Ustawienia użytkownika.
  2. Włącz opcję Użytkownicy mogą wyrazić zgodę na aplikacje, które uzyskują dostęp do danych firmowych w ich imieniu, i zapisują zmiany.

Zrzut ekranu projektanta portalu Azure.

  • Administrator może udzielić uprawnień do aplikacji — dla całej dzierżawy lub określonego użytkownika.

Błąd CS1061

Pobierz plik 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 firmy Microsoft Entra dla innej dzierżawy (użytkownik-gość)

Jeśli osadzasz dla swojej organizacji, aby zezwolić użytkownikom-gościom usługi Microsoft Entra na dostęp do zawartości, musisz określić identyfikator dzierżawy w parametrze authorityUri .

  • Adres URL uwierzytelniania 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żawy, możesz użyć instrukcji w artykule Znajdowanie identyfikatora dzierżawy firmy Microsoft Entra i podstawowej nazwy domeny.

Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji wielodostępnej.

Źródła danych

Niezależnego dostawcy oprogramowania 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 JAVAScript SDK, 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
TokenExpired 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łowy identyfikator raportu
  • Raport nie istnieje
  • Nieprawidłowe parametry nie określono parametru powerbiToken Nie dotyczy
  • Nie podano tokenu dostępu
  • Brak podanego identyfikatora raportu
  • LoadReportFailed Nie można zainicjować — nie można rozpoznać klastra 403
  • Nieprawidłowy token dostępu
  • Typ osadzania nie jest zgodny z typem tokenu
  • PowerBINotAuthorizedException Pobieranie raportu nie powiodło się 401
  • Nieprawidłowy identyfikator grupy
  • Nieautoryzowana grupa
  • TokenExpired Token dostępu wygasł, prześlij ponownie przy użyciu nowego tokenu dostępu. Nie można renderować wizualizacji raportu zatytułowanej: tytuł wizualizacji Nie dotyczy
  • Wykonywanie zapytań o dane
  • Wygasły token
  • Otwórz Połączenie ionError Nie można wyświetlić wizualizacji. Nie można renderować wizualizacji raportu zatytułowanej: tytuł wizualizacji Nie dotyczy 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. Nie dotyczy
  • Wstrzymana pojemność
  • Usunięto pojemność
  • 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 Przyczyny
    TokenExpired Token dostępu wygasł, prześlij ponownie przy użyciu nowego tokenu dostępu 403 Wygasły token
    LoadReportFailed Pobieranie raportu nie powiodło się 404
  • Nieprawidłowy identyfikator raportu
  • Raport nie istnieje
  • LoadReportFailed Pobieranie raportu nie powiodło się 403 Identyfikator raportu nie jest zgodny z tokenem
    LoadReportFailed Pobieranie raportu nie powiodło się 500 Identyfikator podany w raporcie nie jest identyfikatorem GUID
    Nieprawidłowe parametry nie określono parametru powerbiToken Nie dotyczy
  • Nie podano tokenu dostępu
  • Brak podanego identyfikatora raportu
  • LoadReportFailed Nie można zainicjować — nie można rozpoznać klastra 403 Nieprawidłowy typ tokenu lub nieprawidłowy token
    PowerBINotAuthorizedException Pobieranie raportu nie powiodło się 401 Nieprawidłowy/nieautoryzowany identyfikator grupy
    TokenExpired Token dostępu wygasł, prześlij ponownie przy użyciu nowego tokenu dostępu. Nie można renderować wizualizacji raportu zatytułowanej: tytuł wizualizacji Nie dotyczy
  • Wykonywanie zapytań o dane
  • Wygasły token
  • Otwórz Połączenie ionError Nie można wyświetlić wizualizacji. Nie można renderować wizualizacji raportu zatytułowanej: tytuł wizualizacji Nie dotyczy 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. Nie dotyczy
  • Wstrzymana pojemność
  • Usunięto pojemność
  • Pobieranie raportu kończy się niepowodzeniem — błąd 401 — samodzielne rozwiązywanie problemów

    W scenariuszu użytkownika będącego 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 wywołanie RefreshUser Permissions w aplikacji, zgodnie z opisem w temacie Aktualizowanie uprawnień użytkownika.

    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 zabezpieczeń na poziomie wiersza (RLS) usługi Power BI.

    • Zabezpieczenia na poziomie obiektu (OLS).

    • 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ługa Power BI

    Aby wykluczyć problemy z aplikacją lub interfejsami API osadzania, sprawdź, czy element można wyświetlić w usługa Power BI (powerbi.com).

    Sprawdź, czy element usługi Power BI ładuje się na placu zabaw osadzonej analizy usługi Power BI

    Aby wykluczyć problemy z aplikacją, sprawdź, czy element usługi Power BI można wyświetlić na osadzonym placu zabaw analizy usługi Power BI.

    Sprawdź, czy token dostępu nie wygaśnie

    W celach zabezpieczających tokeny dostępu (token entra firmy Microsoft lub token osadzania) mają 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żanie tokenu dostępu.

    Wydajność

    Aby uzyskać najlepszą wydajność osadzonej zawartości, zalecamy stosowanie najlepszych rozwiązań z zakresu osadzonej analizy usługi Power BI.

    Narzędzie do konfigurowania osadzania

    Aby szybko pobrać przykładową aplikację, możesz przejść przez narzędzie do konfigurowania osadzania. Następnie możesz porównać aplikację z przykładem.

    Wymagania wstępne

    Przed użyciem narzędzia do konfigurowania osadzania sprawdź, czy masz wszystkie odpowiednie wymagania wstępne. Potrzebujesz konta usługi Power BI Pro i subskrypcji platformy Microsoft Azure .

    Typowe problemy

    Niektóre typowe problemy, które mogą wystąpić podczas testowania za pomocą narzędzia do konfigurowania osadzania, to:

    Korzystanie z przykładowej aplikacji Osadzanie dla klientów

    Jeśli pracujesz z funkcją Osadzanie dla swoich klientów , zapisz i rozpakuj plik PowerBI-Developer-Samples.zip . Następnie otwórz folder PowerBI-Developer-Samples-master\App Owns Data i uruchom plik PowerBIEmbedded_AppOwnsData.sln .

    • Podczas wybierania pozycji Udziel uprawnień (krok Udzielanie uprawnień) występuje następujący błąd:
    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    Rozwiązaniem jest zamknięcie wyskakującego okienka, odczekaj kilka sekund i spróbuj ponownie. Może być konieczne powtórzenie tej akcji kilka razy. Interwał czasu powoduje, że problem polega na zakończeniu procesu rejestracji aplikacji do momentu, gdy jest on dostępny dla zewnętrznych interfejsów API.

    • Podczas uruchamiania przykładowej aplikacji zostanie wyświetlony następujący komunikat o błędzie:
    Password is empty. Please fill password of Power BI username in web.config.
    

    Ten błąd występuje, ponieważ jedyną wartością, która nie jest wstrzykiwana do przykładowej aplikacji, jest hasło użytkownika. Otwórz plik Web.config w rozwiązaniu i wypełnij pbiPassword pole hasłem użytkownika.

    • Jeśli zostanie wyświetlony komunikat o błędzie:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Musisz użyć konta Microsoft Entra, które nie ma włączonej uwierzytelniania wieloskładnikowego.

    Korzystanie z przykładowej aplikacji Embed for your organization

    Jeśli pracujesz z funkcją Osadzanie dla swojej organizacji , zapisz i rozpakuj plik PowerBI-Developer-Samples.zip . Następnie otwórz folder PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app i uruchom plik pbi-saas-embed-report.sln .

    • Po uruchomieniu przykładowej aplikacji Osadzanie dla organizacji zostanie wyświetlony następujący błąd:
    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    Ten błąd jest spowodowany tym, że adres URL przekierowania określony dla aplikacji serwera internetowego różni się od adresu URL przykładu. Jeśli chcesz zarejestrować przykładową aplikację, użyj jej https://localhost:13526/ jako adresu URL przekierowania.

    Jeśli chcesz edytować zarejestrowaną aplikację, zaktualizuj zarejestrowaną aplikację firmy Microsoft, aby aplikacja mogła zapewnić dostęp do internetowych interfejsów API.

    Jeśli chcesz edytować profil użytkownika lub dane usługi Power BI, dowiedz się, jak edytować dane usługi Power BI.

    • Jeśli zostanie wyświetlony komunikat o błędzie:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Musisz użyć konta Microsoft Entra, które nie ma włączonej uwierzytelniania wieloskładnikowego.

    Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące usługi Power BI Embedded.

    Aby uzyskać dalszą pomoc, skontaktuj się z pomocą techniczną lub utwórz bilet pomocy technicznej za pośrednictwem witryny Azure Portal i podaj napotkane komunikaty o błędach.

    Masz więcej pytań? Zapytaj Społeczność usługi Power BI