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.
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.
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.
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.
I avsnittet Egenskaper kopierar du objekt-ID:t.
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:
Installera Microsoft Graph PowerShell SDK.
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 allaEffectiveIdentity
. - 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.
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):
- I Azure-portalen går du till Microsoft Entra-ID>Användare och grupper>Användarinställningar.
- Aktivera Användare kan godkänna att appar får åtkomst till företagsdata för deras räkning inställning och spara ändringarna.
- 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 | |
Ogiltiga parametrar | powerbiToken-parametern har inte angetts | Ej tillämpligt | |
RapportLaddningMisslyckades | Det gick inte att initiera – Det gick inte att lösa klustret | 403 | |
PowerBINotAuthorizedException | Det gick inte att hämta rapporten | 401 | |
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 | |
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 |
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 | |
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 | |
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 | |
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 |
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:
Filtrering på radnivå med Power BI säkerhet på radnivå (RLS).
Avgränsa data i olika semantiska modeller. Du kan till exempel skapa en semantisk modell som bara innehåller aggregerade data och ge användarna åtkomst till endast den semantiska modellen.
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.
Relaterat innehåll
Vanliga frågor och svar om Power BI Embedded
Fler frågor? Fråga Power BI Community