Dela via


Felsöka ditt inbäddade program

I den här artikeln beskrivs några vanliga problem som kan uppstå när innehåll bäddas in från Power BI.

Felsökningsverktyg

Fiddler-spårning

Fiddler är ett kostnadsfritt verktyg från Telerik som övervakar HTTP-trafik. Du kan se trafiken med Power BI-API:erna från klientdatorn. Det här verktyget kan visa fel och annan relaterad information.

Skärmbild av utdatafönstret för Fiddler-verktyget, som visar HTTP-trafiken för Power BI API.

F12 i webbläsare för felsökning av klientdelen

F12-nyckeln startar utvecklarfönstret i webbläsaren. Med det här verktyget kan du titta på nätverkstrafik och se annan värdefull information.

Skärmbild av webbläsarutvecklarfönstrets fliken Nätverk, som visar nätverkstrafiken.

Extrahera felinformation från Power BI-svar

Det här kodfragmentet visar hur du extraherar felinformationen från ett HTTP-undantag:

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;
}

Vi rekommenderar att du loggar begärande-ID :t (och felinformation för felsökning). Ange begärande-ID när du närmar dig Microsoft-supporten.

Appregistrering

Fel vid appregistrering

Felmeddelanden i Azure-portalen eller på registreringssidan för Power BI-appen meddelar dig om du inte har tillräcklig behörighet för att registrera din app. Om du vill registrera ett program måste du vara administratör i Microsoft Entra-klientorganisationen, annars måste programregistreringar aktiveras för icke-administratörsanvändare.

Power BI-tjänsten visas inte i Azure-portalen när du registrerar en ny app

Minst en användare måste vara registrerad för Power BI. Om du inte ser Power BI-tjänsten listad i API-listan registreras ingen användare för Power BI.

Vad är skillnaden mellan ett programobjekt-ID och ett huvudobjekt-ID?

När du registrerar en Microsoft Entra-app finns det två parametrar som kallas objekt-ID. I det här avsnittet beskrivs syftet med varje parameter och hur du hämtar den.

Programobjekt-ID

Det programobjektet ID, som även kallas objekt-ID, är det unika ID:t för ditt Microsoft Entra-programobjekt.

Om du vill hämta programobjekt-ID:t går du till din Microsoft Entra-app och kopierar den från Översikt.

Skärmbild av Fönstret i Azure-portalen, som visar objekt-ID:t på bladet Översikt i ett Microsoft Entra-program.

Objekt-ID för huvudobjekt

Huvudobjekt-ID, även känt som objekt-ID , är det unika ID:t för tjänstens huvudobjekt som är associerat med din Microsoft Entra-applikation.

Om du vill hämta huvudobjekt-ID:t går du till din Microsoft Entra-app och från Översiktväljer du applänken i Hanterat program i den lokala katalogen.

Skärmbild av Azure-portalens fönster, som visar alternativet hanterat program i lokal katalog på panelen Översikt i ett Microsoft Entra-program.

I avsnittet Egenskaper kopierar du objekt-ID:t.

Skärmbild av Fönstret i Azure-portalen, som visar huvudobjekt-ID:t i egenskapsavsnittet på bladet Översikt i ett Microsoft Entra-program.

Autentisering

Autentiseringen misslyckades med AADSTS70002 eller AADSTS50053

(AADSTS70002: Fel vid validering av autentiseringsuppgifter. AADSTS50053: Du har försökt logga in för många gånger med ett felaktigt användar-ID eller lösenord)

Om du använder Direktautentisering med Power BI Embedded och Microsoft Entra kan du få ett meddelande som det föregående meddelandet när du försöker logga in, eftersom direktautentisering inte är aktiverat.

Du kan aktivera direkt autentisering igen med hjälp av en Microsoft Entra-princip som är tillämpad på organisationen eller ett tjänsthuvudnamn.

Vi rekommenderar att du endast aktiverar den här principen per app.

För att skapa den här policyn måste du vara en global administratör för katalogen där du skapar och tilldelar policyn. Här är ett exempelskript för att skapa principen och tilldela den till SP för det här programmet:

  1. Installera Microsoft Graph PowerShell SDK.

  2. Kör följande PowerShell-kommandon rad för rad (se till att variabeln $sp inte har fler än ett program som resultat).

    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
    

När du har tilldelat principen väntar du ungefär 15–20 sekunder på spridning innan du testar den.

Det går inte att generera en token när en effektiv identitet tillhandahålls

GenerateToken kan misslyckas med en effektiv identitet som tillhandahålls av några olika orsaker:

  • Den semantiska modellen stöder inte effektiv identitet.
  • Användarnamnet angavs inte.
  • Rollen angavs inte.
  • DatasetId angavs inte.
  • Användaren har inte rätt behörigheter.

Prova följande steg för att lösa problemet:

  • Kör för att hämta datauppsättning. Är egenskapen IsEffectiveIdentityRequired sann?
  • Användarnamn krävs för alla EffectiveIdentity.
  • Om IsEffectiveIdentityRolesRequired är sant är Roll nödvändig.
  • DatasetId krävs för alla EffectiveIdentity.
  • För Analysis Services måste huvudanvändaren vara gatewayadministratör.

AADSTS90094: Beviljandet kräver administratörsbehörighet

Symptom:

När en icke-administratörsanvändare försöker logga in på ett program för första gången när de beviljar medgivande får du sedan något av följande fel:

  •   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.
    

    Skärmbild av inloggningsdialogrutan för Azure-portalen, som visar behörighetsfelet Medgivandetest.

En administratörsanvändare kan logga in och bevilja medgivande.

Grundorsak:

Användarmedgivande är inaktiverat för klientorganisationen.

Flera korrigeringar är möjliga:

  • Aktivera användarmedgivande för hela klientorganisationen (alla användare, alla program):
  1. I Azure-portalen går du till Microsoft Entra-ID>Användare och grupper>Användarinställningar.
  2. Aktivera Användare kan godkänna att appar får åtkomst till företagsdata för deras räkning inställning och spara ändringarna.

Skärmbild av Azure-portalen.

  • En administratör kan bevilja behörigheter till programmet – antingen för hela klientorganisationen eller för en specifik användare.

CS1061-fel

Ladda ned Microsoft.IdentityModel.Clients.ActiveDirectory om följande fel uppstår:

'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-token för en annan klientorganisation (gästanvändare)

När du bäddar in för din organisation, och vill ge Microsoft Entra-gästanvändare tillgång till ditt innehåll, behöver du ange klient-ID i parametern authorityUri.

  • URL för autentisering i organisationens tenant:

    https://login.microsoftonline.com/common/v2.0

  • URL för att autentisera en Microsoft Entra-gästanvändare:

    https://login.microsoftonline.com/<tenant ID>

Om du vill hitta ditt klient-ID kan du använda anvisningarna i Hitta Klient-ID för Microsoft Entra och det primära domännamnet.

Mer information finns i Making your application multitenant.

Datakällor

ISV vill ha olika autentiseringsuppgifter för samma datakälla

En datakälla kan ha en enda uppsättning autentiseringsuppgifter för en huvudanvändare. Om du behöver använda olika autentiseringsuppgifter skapar du fler huvudanvändare. Tilldela sedan de olika autentiseringsuppgifterna till var och en av huvudanvändarnas kontexter och bädda in med hjälp av Microsoft Entra-token för den användaren.

Felsöka ditt inbäddade program med IError-objektet

Använd IError-objektet som returneras av felhändelsen från JavaScript SDK- för att felsöka ditt program och bättre förstå orsaken till dina fel.

När du har hämtat IError-objektet bör du titta på lämplig gemensam feltabell som passar den inbäddningstyp som du använder. Jämför IError-egenskaper med de i tabellen och hitta möjliga orsaker till felet.

Vanliga fel vid inbäddning för Power BI-användare

Meddelande Detaljerat meddelande Felkod Möjliga orsaker
Token har gått ut Åtkomsttoken har upphört att gälla, skicka in igen med en ny åtkomsttoken 403 Token har upphört att gälla
PowerBIEntityNotFound Det gick inte att hämta rapporten 404
  • Fel rapport-ID
  • Rapporten finns inte
  • Ogiltiga parametrar powerbiToken-parametern har inte angetts Ej tillämpligt
  • Ingen åtkomsttoken har angetts
  • Inget rapport-ID har angetts
  • RapportLaddningMisslyckades Det gick inte att initiera – Det gick inte att lösa klustret 403
  • Felaktig åtkomsttoken
  • Inbäddningstypen matchar inte tokentypen
  • PowerBINotAuthorizedException Det gick inte att hämta rapporten 401
  • Fel grupp-ID
  • Obehörig grupp
  • Token har löpt ut Åtkomsttoken har upphört att gälla, skicka in på nytt med en ny åtkomsttoken. Det gick inte att återge en rapportvisualisering med titeln: visuell rapporttitel Ej tillämpligt
  • Fråga efter data
  • Token har upphört att gälla
  • OpenConnectionError Det går inte att visa det visuella objektet. Det gick inte att återge en rapportvisuell med titeln: visuell Ej tillämpligt Kapaciteten har pausats eller tagits bort när en rapport som är relaterad till kapaciteten var öppen i en session
    ExplorationsBehållare_MisslyckadesAttLaddaModellen_StandardDetaljer Det gick inte att läsa in modellschemat som är associerat med den här rapporten. Kontrollera att du har en anslutning till servern och försök igen. Ej tillämpligt
  • Kapaciteten har pausats
  • Kapaciteten har tagits bort
  • Vanliga fel vid inbäddning för icke-Power BI-användare (med hjälp av en inbäddningstoken)

    Meddelande Detaljerat meddelande Felkod Möjliga orsaker
    Token har gått ut Åtkomsttoken har upphört att gälla, skicka igen med en ny åtkomsttoken 403 Token har upphört att gälla
    RapportladdningMisslyckades Det gick inte att hämta rapporten 404
  • Fel rapport-ID
  • Rapporten finns inte
  • RapportladdningMisslyckades Det gick inte att hämta rapporten 403 Rapport-ID matchar inte token
    Laddning av rapport misslyckades Det gick inte att hämta rapporten 500 Det angivna ID:t för rapporten är inte ett GUID
    Ogiltiga parametrar powerbiToken-parametern har inte angetts Ej tillämpligt
  • Ingen åtkomsttoken har angetts
  • Inget rapport-ID har angetts
  • LaddningAvRapportMisslyckades Det gick inte att initiera – Det gick inte att lösa klustret 403 Fel tokentyp eller felaktig token
    PowerBINotAuthorizedException Det gick inte att hämta rapporten 401 Fel/obehörigt grupp-ID
    Token utgått Åtkomsttoken har upphört att gälla, skicka in igen med en ny åtkomsttoken. Det gick inte att återge en visuell rapport med titeln: titel Ej tillämpligt
  • Fråga efter data
  • Token har upphört att gälla
  • OpenConnectionError Det går inte att visa det visuella objektet. Det gick inte att återge en rapportvisual med titeln: . Ej tillämpligt Kapaciteten har pausats eller tagits bort när en rapport som är relaterad till kapaciteten var öppen i en session
    UtforskningContainer_MisslyckadesAttLaddaModell_Standarddetaljer Det gick inte att läsa in modellschemat som är associerat med den här rapporten. Kontrollera att du har en anslutning till servern och försök igen. Ej tillämpligt
  • Kapaciteten har pausats
  • Kapaciteten har tagits bort
  • Det går inte att hämta rapporten – fel 401 – löser sig automatiskt

    I användaren äger data scenariot får användarna ibland ett 401-fel som löser sig själv när de har åtkomst till Power BI-portalen. När 401-felet inträffar, lägg till anropet RefreshUser Permissions i appen enligt beskrivningen i Uppdatera användarbehörigheter.

    Semantiska modeller

    Hantera vilken del av data som användarna kan se

    Alla användare med läsbehörighet för en semantisk modell kan se hela schemat (tabeller, kolumner och mått) och alla data. Du kan inte styra visningsbehörigheter för rådata och aggregerade data separat i samma semantiska modell.

    Om du vill hantera vilken del av data som användarna kan visa använder du någon av följande metoder:

    Innehållsåtergivning

    Information om hur du löser renderingsproblem i inbäddade Power BI-objekt (till exempel rapporter och instrumentpaneler) finns i det här avsnittet.

    Kontrollera att Power BI-objektet läses in i Power BI-tjänsten

    Om du vill utesluta problem med ditt program eller api:erna för inbäddningkontrollerar du att objektet kan visas i Power BI-tjänsten (powerbi.com).

    Kontrollera att Power BI-objektet laddas i Power BI Embedded Analytics Playground

    Om du vill utesluta problem med ditt program kontrollerar du att Power BI-objektet kan visas i Power BI Embedded-analyslekplatsen.

    Kontrollera att din åtkomsttoken inte upphör att gälla

    I säkerhetssyfte har åtkomsttoken (en Microsoft Entra-token eller en inbäddningstoken) en begränsad livslängd. Du bör ständigt övervaka din åtkomsttoken och uppdatera den om det behövs. Mer information finns i Uppdatera åtkomsttoken.

    Prestanda

    För att få bästa möjliga inbäddade innehåll rekommenderar vi att du följer metodtipsen för Power BI Embedded-analys.

    Vanliga frågor och svar om Power BI Embedded

    Fler frågor? Fråga Power BI Community