Riešenie problémov s vloženou aplikáciou
V tomto článku sa popisujú niektoré bežné problémy, ktoré môžu naslúchať pri vkladaní obsahu zo služby Power BI.
Nástroje na riešenie problémov
Trasovanie Fiddler
Fiddler je bezplatný nástroj od spoločnosti Telerik, ktorý sleduje prenos údajov cez protokol HTTP. S rozhraniami API služby Power BI môžete z klientskeho počítača sledovať podrobnosti o aktivite. Tento nástroj môže zobrazovať chyby a ďalšie súvisiace informácie.
F12 v prehliadači na klientske ladenie
Pomocou kľúča F12 sa v prehliadači spustí vývojárske okno. Tento nástroj vám umožní pozrieť sa na sieťovú prevádzku a zobraziť ďalšie hodnotné informácie.
Extrahovanie podrobností o chybe z odpovede služby Power BI
Tento zlomok kódu ukazuje, ako môžete extrahovať podrobnosti o chybe z výnimky 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;
}
Odporúčame zapisovanie ID požiadavok (a podrobností o chybách na účely riešenia problémov) do denníka. Keď sa obrátite na podporu spoločnosti Microsoft, uveďte ID požiadavky.
Registrácia aplikácie
Zlyhanie registrácie aplikácie
Chybové hlásenia na portáli Azure Portal alebo na registračnej stránke aplikácie služby Power BI vás upozorní, ak nemáte dostatočné oprávnenia na registráciu aplikácie. Aby ste mohli aplikáciu zaregistrovať, musíte byť správcom v nájomníkovi Azure AD alebo musí byť povolená registrácia aplikácií pre používateľov bez povolenia správcu.
služba Power BI sa po registrácii novej aplikácie nezobrazuje na portáli Azure Portal
V službe Power BI musí byť zaregistrovaný aspoň jeden používateľ. Ak sa v zozname rozhraní API nezobrazujú služba Power BI, v službe Power BI nie je zaregistrovaný žiadny používateľ.
Aký je rozdiel medzi ID objektu aplikácie a ID objektu?
Pri registrácii aplikácie Azure AD existujú dva parametre s názvom ID objektu. Táto časť vysvetľuje účel každého parametra a ako ho získať.
ID objektu aplikácie
ID objektu aplikácie, známe aj jednoducho ako ID objektu, je jedinečným ID vášho objektu aplikácie Azure AD.
Ak chcete získať ID objektu aplikácie, prejdite do Azure AD aplikácie a skopírujte ho z prehľadu.
ID hlavného objektu
ID hlavného objektu, známe aj jednoducho ako ID objektu, je jedinečným ID objektu služby priradeným k vašej aplikácii Azure AD.
Ak chcete získať ID hlavného objektu, prejdite do svojej Azure AD aplikácie a v časti Prehľad vyberte prepojenie aplikácie v časti Spravovaná aplikácia v lokálnom adresári.
V časti Vlastnosti skopírujte ID objektu.
Overenie
Overenie zlyhalo s chybou AADSTS70002 alebo AADSTS50053
(AADSTS70002: Chyba pri overovaní poverení. AADSTS50053: Pokúsili ste sa veľakrát prihlásiť s nesprávnou identifikáciou používateľa alebo heslom)
Ak používate Power BI Embedded a Azure AD priame overovanie, pri pokuse o prihlásenie sa môže zobraziť správa ako predchádzajúca správa, pretože priame overovanie nie je povolené.
Priame overovanie môžete znova zapnúť pomocou politiky Azure AD, ktorá je zameraná na organizáciu, alebo pomocou objektu služby.
Odporúčame, aby ste túto politiku povolili len pre jednotlivé aplikácie.
Ak chcete vytvoriť túto politiku, musíte byť globálny správca adresára, v ktorom vytvárate politiku a priraďujete ju. Tu je vzorový skript na vytvorenie politiky a jej priradenie k SP pre túto aplikáciu:
Nainštalujte Azure AD ukážku modulu prostredia PowerShell.
Spustite nasledujúce príkazy prostredia PowerShell riadok po riadku (uistite sa, že premenná
$sp
nemá viac výsledkov než jednu aplikáciu).
Connect-AzureAD
$sp = Get-AzureADServicePrincipal -SearchString "Name_Of_Application"
$policy = New-AzureADPolicy -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AllowCloudPasswordValidation`":true}}") -DisplayName EnableDirectAuth -Type HomeRealmDiscoveryPolicy -IsOrganizationDefault $false
Add-AzureADServicePrincipalPolicy -Id $sp.ObjectId -RefObjectId $policy.Id
Po priradení politiky počkajte približne 15 – 20 sekúnd na distribúciu pred testovaním.
Generovanie tokenu zlyhá po zadaní efektívnej identity
GenerateToken
efektívnu identitu poskytnutú z niekoľkých rôznych dôvodov môže zlyhať:
- Množina údajov nepodporuje efektívnu identitu.
- Nebolo zadané meno používateľa.
- Nebola zadaná rola.
DatasetId
nebola zadaná.- Používateľ nemá správne povolenia.
Ak chcete zistiť tento problém, vyskúšajte tieto kroky:
- Spustite príkaz získať množinu údajov. Má vlastnosť hodnotu
IsEffectiveIdentityRequired
true? - Meno používateľa je povinné pre všetky
EffectiveIdentity
. - Ak
IsEffectiveIdentityRolesRequired
je hodnota true, vyžaduje sa parameter Role. DatasetId
systém je povinný pre všetkyEffectiveIdentity
.- V službe Analysis Services musí byť hlavný používateľ správcom brány.
AADSTS90094: Udelenie vyžaduje povolenie správcu
Príznaky:
Pokiaľ sa používateľ, ktorý nie je správcom, pokúša prihlásiť do aplikácie po prvýkrát počas udeľovania súhlasu, zobrazí sa mu jedna z nasledujúcich chýb:
-
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.
Správca sa môže prihlásiť a úspešne udeliť súhlas.
Hlavná príčina:
Súhlas používateľa je pre nájomníka neaktívny.
K dispozícii je niekoľko opráv:
- Povoliť súhlas používateľa pre celého nájomníka (všetci používatelia, všetky aplikácie):
- Na portáli Azure prejdite na položku Používatelia služby Azure Active Directory>a zoskupte>položku Používateľské nastavenia.
- Povoľte používateľom udeliť súhlas s aplikáciami, ktoré pristupujú k údajom spoločnosti v ich mene a uložte zmeny.
- Správca môže udeliť povolenia pre aplikáciu – buď pre celého nájomníka, alebo pre konkrétneho používateľa.
Chyba CS1061
Stiahnite si Microsoft.IdentityModel.Clients.ActiveDirectory , ak sa zobrazí nasledujúca chyba:
'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?)
Azure AD token pre iného nájomníka (hosťovského používateľa)
Ak chcete pri vkladaní obsahu pre svoju organizáciu povoliť Azure AD hosťovským používateľom prístup k vášmu obsahu, musíte do parametra zadať ID nájomníkaauthorityUri
.
URL adresa na overovanie v nájomníkovi vašej organizácie:
https://login.microsoftonline.com/common/v2.0
URL adresa na overenie hosťa Azure AD používateľa:
https://login.microsoftonline.com/<tenant ID>
Ak chcete nájsť SVOJE ID nájomníka, môžete použiť pokyny v téme Vyhľadanie ID nájomníka Microsoft Azure AD a názvu primárnej domény.
Ďalšie informácie nájdete v téme Vytvorenie aplikácie s viacerými nájomníkmi.
Zdroje údajov
Nezávislý dodávateľ softvéru chce mať iné poverenia pre ten istý zdroj údajov
Zdroj údajov môže mať jeden súbor poverení pre jedného hlavného používateľa. Ak potrebujete použiť iné poverenia, vytvorte ďalších hlavných používateľov. Potom priraďte rôzne poverenia do kontextov hlavných používateľov a vkladanie použite token Azure AD daného používateľa.
Riešenie problémov s vloženou aplikáciou pomocou objektu IError
Pomocou objektu IError object vráteného udalosťou chyby zo súpravy JavaScript SDK vyriešite problém s aplikáciou a lepšie porozumiete príčine chyby.
Po získaní objektu IError by ste sa mali pozrieť na príslušnú tabuľku s bežnými chybami, ktorá je určená pre typ vkladacieho prostriedku, ktorý používate. Porovnajte vlastnosti objektu IError s tými v tabuľke a nájdite prípadné dôvody zlyhania.
Zvyčajné chyby pri vkladaní pre používateľov služby Power BI
Správa | Podrobná správa | Kód chyby | Možné dôvody |
---|---|---|---|
TokenExpired | Access token has expired, resubmit with a new access token (Platnosť prístupového tokenu uplynula, odošlite znova s novým prístupovým tokenom) | 403 | Platnosť tokenu uplynula |
PowerBIEntityNotFound | Get report failed (Nepodarilo sa získať zostavu) | 404 | |
Invalid parameters | powerbiToken parameter not specified (parameter powerbiToken nebol špecifikovaný) | Nie je k dispozícii | |
LoadReportFailed | Fail to initialize - Could not resolve cluster (Inicializácia zlyhala – nepodarilo sa vyhľadať klaster) | 403 | |
PowerBINotAuthorizedException | Get report failed (Nepodarilo sa získať zostavu) | 401 | |
TokenExpired | Access token has expired, resubmit with a new access token. Nepodarilo sa vykresliť vizuál zostavy s názvom: názov vizuálu | Nie je k dispozícii | |
OpenConnectionError | Can't display the visual. Nepodarilo sa vykresliť vizuál zostavy s názvom: názov vizuálu | Nie je k dispozícii | Kapacita bola pozastavená alebo odstránené počas toho, ako bola zostava týkajúca sa kapacity otvorená počas relácie |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Couldn't load the model schema associated with this report. Make sure you have a connection to the server and try again. (Nepodarilo sa načítať schému modelu priradenú k tejto zostave. Uisite sa, že ste pripojený k serveru a skúste to znova). | Nie je k dispozícii |
Zvyčajné chyby pri vkladaní pre používateľov bez služby Power BI (používajúcich tokenu na vloženie)
Správa | Podrobná správa | Kód chyby | Dôvody |
---|---|---|---|
TokenExpired | Access token has expired, resubmit with a new access token (Platnosť prístupového tokenu uplynula, odošlite znova s novým prístupovým tokenom) | 403 | Platnosť tokenu uplynula |
LoadReportFailed | Get report failed (Nepodarilo sa získať zostavu) | 404 | |
LoadReportFailed | Get report failed (Nepodarilo sa získať zostavu) | 403 | ID zostavy nezodpovedá tokenu |
LoadReportFailed | Get report failed (Nepodarilo sa získať zostavu) | 500 | Zostavou poskytnuté ID nie je identifikátorom GUID |
Invalid parameters | powerbiToken parameter not specified (parameter powerbiToken nebol špecifikovaný) | Nie je k dispozícii | |
LoadReportFailed | Fail to initialize - Could not resolve cluster (Inicializácia zlyhala – nepodarilo sa vyhľadať klaster) | 403 | Nesprávny typ tokenu alebo zlý token |
PowerBINotAuthorizedException | Get report failed (Nepodarilo sa získať zostavu) | 401 | Nesprávne/neoprávnené ID skupiny |
TokenExpired | Access token has expired, resubmit with a new access token. Nepodarilo sa vykresliť vizuál zostavy s názvom: názov vizuálu | Nie je k dispozícii | |
OpenConnectionError | Can't display the visual. Nepodarilo sa vykresliť vizuál zostavy s názvom: názov vizuálu | Nie je k dispozícii | Kapacita bola pozastavená alebo odstránené počas toho, ako bola zostava týkajúca sa kapacity otvorená počas relácie |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Couldn't load the model schema associated with this report. Make sure you have a connection to the server and try again. (Nepodarilo sa načítať schému modelu priradenú k tejto zostave. Uisite sa, že ste pripojený k serveru a skúste to znova). | Nie je k dispozícii |
Načítanie zostavy zlyhá – chyba 401 – vyriešiť samé seba
V scenári Používateľ vlastní údaje sa niekedy používateľom zobrazí chyba 401, ktorá sa vyrieši po prístupe na portál služby Power BI. Keď sa vyskytne chyba 401, pridajte do aplikácie volanie Povolenia refreshUser , ako je vysvetlené v časti Aktualizácia povolení používateľa.
Množiny údajov
Spravujte, ktorú časť údajov si používatelia môžu zobraziť
Každý používateľ s povoleniami na čítanie pre množinu údajov môže vidieť celú schému (tabuľky, stĺpce a mierky) a všetky údaje. Povolenia na zobrazovanie nespracovaných a agregovaných údajov nemôžete ovládať samostatne v tej istej množine údajov.
Ak chcete spravovať, ktorú časť údajov si používatelia môžu zobraziť, použite jednu z nasledujúcich metód:
Filtrovanie na úrovni riadkov pomocou zabezpečenia na úrovni riadkov služby Power BI (RLS).
Zabezpečenie na úrovni objektu (Object Level Security, OLS).
Oddeľte údaje do rôznych množín údajov. Môžete napríklad vytvoriť množinu údajov, ktorá obsahuje iba agregované údaje, a poskytnúť tak používateľom prístup len k danej množine údajov.
Vykresľovanie obsahu
Ak chcete vyriešiť problémy s vykresľovaním vo vložených položkách Power BI (napríklad v zostavách a tabuliach), pozrite si túto časť.
Overte, či sa položka Power BI načíta v služba Power BI
Ak chcete vylúčiť problémy s aplikáciou alebo rozhraním API na vkladanie, overte, či je možné zobraziť položku v služba Power BI (powerbi.com).
Overte, či sa položka Power BI načíta na ihrisku vloženej analýzy služby Power BI
Ak chcete vylúčiť problémy s aplikáciou, overte, či je možné zobraziť položku Power BI na ihrisku vloženej analýzy služby Power BI.
Overte, či neuplyla platnosť prístupového tokenu
Z bezpečnostných dôvodov majú prístupové tokeny (Azure AD token alebo token na vloženie) obmedzenú životnosť. Prístupový token by ste mali v prípade potreby neustále monitorovať a obnovovať. Ďalšie informácie nájdete v téme Obnovenie prístupového tokenu.
Výkon
Ak chcete získať vložený obsah s najlepším výkonom, odporúčame postupovať podľa osvedčených postupov pri vloženej analýze služby Power BI.
Inštalačný nástroj prostredia na vkladanie
Pomocou nástroja na nastavenie prostredia pre vkladanie môžete rýchlo začať a stiahnuť si vzorovú aplikáciu. Potom môžete svoju aplikáciu porovnať s ukážkovou.
Predpoklady
Pred použitím nástroja na nastavenie prostredia pre vkladanie skontrolujte, či spĺňate správne požiadavky. Potrebujete konto Power BI Pro a predplatné Microsoft Azure.
- Ak ste sa nezaregistrovali v službe Power BI Pro, pred začatím si zaregistrujte bezplatnú skúšobnú verziu.
- Ak nemáte predplatné na Azure, pred začatím si vytvorte bezplatné konto.
- vlastné nastavenie nájomníka služby Azure Active Directory .
- Potrebujete mať nainštalovaný program Visual Studio (verziu 2013 alebo novšiu).
Bežné problémy
K bežným problémom, s ktorými sa môžete stretnúť pri testovaní pomocou nástroja na nastavenie prostredia pre vkladanie, patria nasledujúce:
Použitie ukážkovej aplikácie na vloženie pre zákazníkov
Ak pracujete s prostredím Embed for your customers (Vloženie pre zákazníkov), uložte a rozbaľte súbor PowerBI-Developer-Samples.zip. Potom otvorte priečinok PowerBI-Developer-Samples-master\App Owns Data a spustite súbor PowerBIEmbedded_AppOwnsData.sln.
- Keď vyberiete možnosť Grant permissions (Udeliť povolenia), zobrazí sa nasledujúca chyba:
AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
Riešením je zavrieť chybu, počkať niekoľko sekúnd a skúsiť to znova. Je možné, že tento postup budete musieť niekoľkokrát zopakovať. Časový interval spôsobí, že v dôsledku problému sa nedokončí proces registrácie aplikácie do bodu, keď je k dispozícii pre externé rozhrania API.
- Pri spustení ukážkovej aplikácie sa zobrazí nasledujúce chybové hlásenie:
Password is empty. Please fill password of Power BI username in web.config.
K tejto chybe dochádza preto, lebo jedinou hodnotou, ktorá sa nevkladá do ukážkovej aplikácie, je vaše heslo používateľa. Otvorte Web.config súbor v riešení a vyplňte pbiPassword
pole heslom používateľa.
- Ak sa zobrazí chyba:
AADSTS50079: The user is required to use multi-factor authentication.
Musíte použiť konto Azure AD, ktoré nemá povolené viacfaktorové overovanie.
Použitie ukážkovej aplikácie na vloženie pre organizáciu
Ak pracujete s prostredím Embed for your organization (Vloženie pre organizáciu), uložte a rozbaľte súbor PowerBI-Developer-Samples.zip. Potom otvorte priečinok PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app a spustite súbor pbi-saas-embed-report.sln.
- Pri spustení ukážkovej aplikácie pre Embed for your organization (Vloženie pre organizáciu) sa zobrazí nasledujúca chyba:
AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
Dôvodom tejto chyby je, že URL adresa na presmerovanie zadaná pre aplikáciu webového servera sa líši od URL adresy v ukážke. Ak chcete zaregistrovať ukážková aplikácia, použite https://localhost:13526/
ju ako URL adresu na presmerovanie.
Ak chcete upraviť zaregistrovanú aplikáciu, aktualizujte aplikáciu zaregistrovanú v Azure AD, aby aplikácia mohla poskytovať prístup k webovým rozhraniam API.
Ak chcete upraviť profil používateľa alebo údaje služby Power BI, zistite, ako upravovať údaje služby Power BI.
- Ak sa zobrazí chyba:
AADSTS50079: The user is required to use multi-factor authentication.
Musíte použiť konto Azure AD, ktoré nemá povolené viacfaktorové overovanie.
Ďalšie informácie nájdete v téme Najčastejšie otázky o službe Power BI Embedded.
Ak potrebujete ďalšiu pomoc, obráťte sa na podporu alebo vytvorte žiadosť o podporu prostredníctvom portálu Azure a uveďte chybové hlásenia, ktoré sa zobrazili.
Ďalšie kroky
Máte ďalšie otázky? Spýtajte sa komunity Power BI