Felsöka 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.
Verktyg för felsökning
Fiddler-spårning
Fiddler är ett kostnadsfritt verktyg från Telerik som övervakar HTTP-trafik. Du kan se trafiken med Power BI-API 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änst 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änst visas 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
Programobjekt-ID:t, även kallat 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 översikten.
Objekt-ID för huvudobjekt
Objekt-ID:t för huvudobjektet, även kallat objekt-ID, är det unika ID:t för tjänstens huvudnamn som är associerat med ditt Microsoft Entra-program.
Du hämtar huvudobjekt-ID:t genom att gå till Din Microsoft Entra-app och från Översikt vä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 begränsad till organisationen eller ett huvudnamn för tjänsten.
Vi rekommenderar att du endast aktiverar den här principen per app.
Om du vill skapa den här principen måste du vara global administratör för katalogen där du skapar principen och tilldelar den. Här är ett exempelskript för att skapa principen och tilldela den till SP för det här programmet:
Kör följande PowerShell-kommandon rad för rad (se till att variabeln
$sp
inte har fler än ett program som ett 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 token när du tillhandahåller en effektiv identitet
GenerateToken
kan misslyckas med den effektiva 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
inte angavs.- Användaren har inte rätt behörigheter.
Prova följande steg för att lösa problemet:
- Kör hämta datauppsättning. Är egenskapen
IsEffectiveIdentityRequired
sann? - Användarnamn krävs för alla
EffectiveIdentity
. - Om
IsEffectiveIdentityRolesRequired
är sant krävs roll. 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.
Rotorsak:
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 Användarinställningar för Microsoft Entra-ID>Användare och grupper.>
- Aktivera användare kan godkänna att appar får åtkomst till företagsdata för deras räkning 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 du får följande fel:
'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 måste du ange klient-ID:t i parametern authorityUri
för att ge Microsoft Entra-gästanvändare åtkomst till ditt innehåll.
URL för autentisering i organisationens klientorganisation:
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 klientorganisations-ID kan du använda anvisningarna i Hitta Klient-ID:t för Microsoft Entra och det primära domännamnet.
Mer information finns i Making your application multi-tenant (Göra programmet till flera klientorganisationer).
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-egenskaperna 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 |
---|---|---|---|
TokenExpired | Åtkomsttoken har upphört att gälla och skickas på nytt 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 | |
LoadReportFailed | Det gick inte att initiera – Det gick inte att lösa klustret | 403 | |
PowerBINotAuthorizedException | Det gick inte att hämta rapporten | 401 | |
TokenExpired | Åtkomsttoken har upphört att gälla och skickas på nytt med en ny åtkomsttoken. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik | Ej tillämpligt | |
Öppna Anslut ionError | Det går inte att visa det visuella objektet. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik | Ej tillämpligt | Kapaciteten har pausats eller tagits bort när en rapport som är relaterad till kapaciteten var öppen i en session |
ExplorationContainer_FailedToLoadModel_DefaultDetails | 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 | Skäl |
---|---|---|---|
TokenExpired | Åtkomsttoken har upphört att gälla och skickas på nytt med en ny åtkomsttoken | 403 | Token har upphört att gälla |
LoadReportFailed | Det gick inte att hämta rapporten | 404 | |
LoadReportFailed | Det gick inte att hämta rapporten | 403 | Rapport-ID matchar inte token |
LoadReportFailed | Det gick inte att hämta rapporten | 500 | Angivet ID för rapport är inte ett GUID |
Ogiltiga parametrar | powerbiToken-parametern har inte angetts | Ej tillämpligt | |
LoadReportFailed | 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 |
TokenExpired | Åtkomsttoken har upphört att gälla och skickas på nytt med en ny åtkomsttoken. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik | Ej tillämpligt | |
Öppna Anslut ionError | Det går inte att visa det visuella objektet. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik | Ej tillämpligt | Kapaciteten har pausats eller tagits bort när en rapport som är relaterad till kapaciteten var öppen i en session |
ExplorationContainer_FailedToLoadModel_DefaultDetails | 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ösa sig själva
I scenariot med att användaren äger data får användarna ibland ett 401-fel som löser sig när de har åtkomst till Power BI-portalen. När 401-felet inträffar lägger du till anropet RefreshUser-behörigheter 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änst
Om du vill utesluta problem med ditt program eller api:er för inbäddning kontrollerar du att objektet kan visas i Power BI-tjänst (powerbi.com).
Kontrollera att Power BI-objektet läses in i Den inbäddade Analyslekplatsen för Power BI
Om du vill utesluta problem med ditt program kontrollerar du att Power BI-objektet kan visas i Den inbäddade Analyslekplatsen för Power BI.
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 Inbäddad Power BI-analys.
Installationsverktyg för inbäddning
Du kan gå igenom konfigurationsverktyget för inbäddning för att snabbt ladda ned ett exempelprogram. Sedan kan du jämföra ditt program med exemplet.
Förutsättningar
Kontrollera att du har alla nödvändiga förutsättningar innan du använder konfigurationsverktyget för inbäddning. Du behöver ett Power BI Pro-konto och en Microsoft Azure-prenumeration .
- Om du inte har registrerat dig för Power BI Pro registrerar du dig för en kostnadsfri utvärderingsversion innan du börjar.
- Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- Du måste ha en egen Installation av Microsoft Entra-klientorganisationen .
- Du behöver Visual Studio installerat (version 2013 eller senare).
Vanliga problem
Några vanliga problem som kan uppstå när du testar med konfigurationsverktyget För inbäddning är:
Använda exempelprogrammet Bädda in för dina kunder
Om du arbetar med upplevelsen Bädda in för dina kunder kan du spara och packa upp PowerBI-Developer-Samples.zip-filen. Öppna sedan mappen PowerBI-Developer-Samples-master\App Owns Data och kör filen PowerBIEmbedded_AppOwnsData.sln .
- När du väljer Bevilja behörigheter (steget Bevilja behörigheter) får du följande fel:
AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
Lösningen är att stänga popup-fönstret, vänta några sekunder och försöka igen. Du kan behöva upprepa den här åtgärden några gånger. Ett tidsintervall gör att problemet från att slutföra programregistreringsprocessen till när det är tillgängligt för externa API:er.
- Följande felmeddelande visas när du kör exempelappen:
Password is empty. Please fill password of Power BI username in web.config.
Det här felet beror på att det enda värde som inte matas in i exempelprogrammet är ditt användarlösenord. Öppna filen Web.config i lösningen och fyll i pbiPassword
fältet med användarens lösenord.
- Om du får felet:
AADSTS50079: The user is required to use multi-factor authentication.
Du måste använda ett Microsoft Entra-konto som inte har MFA aktiverat.
Använda Bädda in för organisationens exempelprogram
Om du arbetar med Bädda in för din organisation sparar du och packar upp filen PowerBI-Developer-Samples.zip . Öppna sedan mappen PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app och kör filen pbi-saas-embed-report.sln .
- När du kör exempelappen Bädda in för din organisation får du följande fel:
AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
Det här felet beror på att den omdirigerings-URL som angetts för webbserverprogrammet skiljer sig från exemplets URL. Om du vill registrera exempelprogrammet använder https://localhost:13526/
du som omdirigerings-URL.
Om du vill redigera det registrerade programmet uppdaterar du det Microsoft Entra-registrerade programmet så att programmet kan ge åtkomst till webb-API:erna.
Om du vill redigera din Power BI-användarprofil eller dina data kan du lära dig hur du redigerar dina Power BI-data.
- Om du får felet:
AADSTS50079: The user is required to use multi-factor authentication.
Du måste använda ett Microsoft Entra-konto som inte har MFA aktiverat.
Mer information finns i Vanliga frågor och svar om Power BI Embedded.
Om du vill ha mer hjälp kontaktar du supporten eller skapar en supportbegäran via Azure-portalen och anger de felmeddelanden du får.
Relaterat innehåll
Vanliga frågor och svar om Power BI Embedded
Har du fler frågor? Fråga Power BI Community