Memecahkan masalah aplikasi yang Anda sematkan
Artikel ini membahas beberapa masalah umum yang dapat muncul saat menyematkan konten dari Power BI.
Alat pemecahan masalah
Jejak Fiddler
Fiddler adalah alat gratis dari Telerik yang memantau lalu lintas HTTP. Anda dapat melihat lalu lintas dengan API Power BI dari komputer klien. Alat ini mungkin menunjukkan kesalahan dan informasi terkait lainnya.
F12 di Browser untuk penelusuran kesalahan frontend
Kunci F12 meluncurkan jendela pengembang dalam browser Anda. Alat ini memungkinkan Anda melihat lalu lintas jaringan dan melihat informasi berharga lainnya.
Mengekstrak detail kesalahan dari respons Power BI
Cuplikan kode ini menunjukkan cara mengekstrak detail kesalahan dari pengecualian 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;
}
Sebaiknya buat log ID Permintaan (dan detail kesalahan untuk pemecahan masalah). Berikan ID Permintaan saat mendekati dukungan Microsoft.
Pendaftaran aplikasi
Kegagalan pendaftaran aplikasi
Pesan kesalahan dalam portal Azure atau halaman pendaftaran aplikasi Power BI akan memberi tahu Anda jika Anda tidak memiliki hak istimewa yang memadai untuk mendaftarkan aplikasi Anda. Untuk mendaftarkan aplikasi, Anda harus menjadi admin di penyewa Microsoft Entra, atau pendaftaran aplikasi harus diaktifkan untuk pengguna non-admin.
layanan Power BI tidak muncul di portal Azure saat mendaftarkan aplikasi baru
Setidaknya satu pengguna harus mendaftar untuk Power BI. Jika Anda tidak melihat layanan Power BI tercantum dalam daftar API, tidak ada pengguna yang mendaftar ke Power BI.
Apa perbedaan antara ID objek aplikasi dan ID objek utama?
Saat Anda mendaftarkan aplikasi Microsoft Entra, ada dua parameter yang disebut ID objek. Bagian ini menjelaskan tujuan setiap parameter, dan cara mendapatkannya.
ID Objek Aplikasi
ID objek aplikasi, juga dikenal sebagai ID objek, adalah ID unik objek aplikasi Microsoft Entra Anda.
Untuk mendapatkan ID objek aplikasi, navigasikan ke aplikasi Microsoft Entra Anda, dan salin dari Gambaran Umum.
ID objek utama
ID objek utama, juga dikenal sebagai ID objek, adalah ID unik dari objek perwakilan layanan yang terkait dengan aplikasi Microsoft Entra Anda.
Untuk mendapatkan ID objek utama Anda, navigasikan ke aplikasi Microsoft Entra Anda, dan dari Gambaran Umum, pilih tautan aplikasi di Aplikasi terkelola di direktori lokal.
Dari bagian Properti, salin ID Objek.
Autentikasi
Autentikasi gagal dengan AADSTS70002 atau AADSTS50053
(AADSTS70002: Kesalahan memvalidasi kredensial. AADSTS50053: Anda telah mencoba masuk terlalu banyak dengan ID Pengguna atau kata sandi yang salah)
Jika Anda menggunakan Power BI Embedded dan autentikasi langsung Microsoft Entra, Anda mungkin menerima pesan seperti pesan sebelumnya saat mencoba masuk, karena autentikasi langsung tidak diaktifkan.
Anda dapat mengaktifkan kembali autentikasi langsung menggunakan kebijakan Microsoft Entra yang dilingkupkan ke organisasi, atau perwakilan layanan.
Kami sarankan Anda mengaktifkan kebijakan ini hanya berdasarkan per aplikasi.
Untuk membuat kebijakan ini, Anda harus menjadi Administrator Global untuk direktori tempat Anda membuat kebijakan dan menetapkannya. Berikut adalah contoh skrip untuk membuat kebijakan dan menetapkannya ke SP untuk aplikasi ini:
Jalankan perintah PowerShell berikut baris demi baris (pastikan variabel
$sp
tidak memiliki lebih dari satu aplikasi sebagai hasilnya).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
Setelah menetapkan kebijakan, tunggu sekitar 15-20 detik untuk penyebaran sebelum pengujian.
Menghasilkan token gagal saat memberikan identitas yang efektif
GenerateToken
dapat gagal dengan identitas efektif yang disediakan karena beberapa alasan berbeda:
- Model semantik tidak mendukung identitas yang efektif.
- Nama pengguna tidak disediakan.
- Peran tidak disediakan.
DatasetId
tidak disediakan.- Pengguna tidak memiliki izin yang benar.
Untuk menentukan masalahnya, coba langkah-langkah berikut:
- Jalankan dapatkan himpunan data. Apakah propertinya
IsEffectiveIdentityRequired
benar? - Nama pengguna diperlukan untuk setiap
EffectiveIdentity
. - Jika
IsEffectiveIdentityRolesRequired
benar, Peran diperlukan. DatasetId
diperlukan untuk setiapEffectiveIdentity
.- Untuk Analysis Services, pengguna master harus menjadi admin gateway.
AADSTS90094: Hibah memerlukan izin admin
Gejala:
Saat pengguna non-admin mencoba masuk ke aplikasi untuk pertama kalinya saat memberikan persetujuan, maka mendapatkan salah satu kesalahan berikut:
-
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.
Pengguna admin dapat masuk dan berhasil memberikan persetujuan.
Akar masalah:
Persetujuan pengguna dinonaktifkan untuk penyewa.
Beberapa perbaikan dimungkinkan:
- Aktifkan persetujuan pengguna untuk seluruh penyewa (semua pengguna, semua aplikasi):
- Di portal Azure, navigasikan ke Pengguna ID>Microsoft Entra dan grup>Pengaturan pengguna.
- Aktifkan Pengguna dapat menyetujui aplikasi yang mengakses data perusahaan atas nama mereka dan menyimpan perubahan.
- Admin dapat memberikan izin ke aplikasi - baik untuk seluruh penyewa atau pengguna tertentu.
Kesalahan CS1061
Unduh Microsoft.IdentityModel.Clients.ActiveDirectory jika Anda mengalami kesalahan berikut:
'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 Microsoft Entra untuk penyewa yang berbeda (pengguna tamu)
Saat Anda menyematkan untuk organisasi Anda, untuk mengizinkan pengguna tamu Microsoft Entra mengakses konten Anda, Anda perlu menentukan ID penyewa dalam authorityUri
parameter .
URL untuk mengautentikasi di penyewa organisasi Anda:
https://login.microsoftonline.com/common/v2.0
URL untuk mengautentikasi pengguna Microsoft Entra tamu:
https://login.microsoftonline.com/<tenant ID>
Untuk menemukan ID penyewa, Anda dapat menggunakan instruksi di Menemukan ID penyewa Microsoft Entra dan nama domain utama.
Untuk informasi selengkapnya, lihat Membuat multi-penyewa aplikasi Anda.
Sumber data
ISV ingin memiliki kredensial yang berbeda untuk sumber data yang sama
Sumber data dapat memiliki satu set kredensial untuk satu pengguna master. Jika Anda perlu menggunakan kredensial yang berbeda, buat lebih banyak pengguna master. Kemudian, tetapkan kredensial yang berbeda ke setiap konteks pengguna master, dan sematkan menggunakan token Microsoft Entra pengguna tersebut.
Memecahkan masalah aplikasi tersemat Anda dengan objek IError
Gunakan objek IError yang dikembalikan oleh peristiwa kesalahan dari JavaScript SDK untuk men-debug aplikasi Anda dan lebih memahami penyebab kesalahan Anda.
Setelah memperoleh objek IError, Anda harus melihat tabel kesalahan umum yang sesuai dengan jenis semat yang Anda gunakan. Bandingkan properti IError dengan properti dalam tabel dan temukan kemungkinan alasan kegagalan tersebut.
Kesalahan umum saat menyematkan untuk pengguna Power BI
Pesan | Pesan Terperinci | Kode Kesalahan | Kemungkinan alasan |
---|---|---|---|
TokenExpired | Token akses telah kedaluwarsa, kirim ulang dengan token akses baru | 403 | Token kedaluwarsa |
PowerBIEntityNotFound | Gagal mendapatkan laporan | 404 | |
Parameter tidak valid | Parameter powerbiToken tidak ditentukan | T/A | |
LoadReportFailed | Gagal menginisialisasi - Tidak dapat menyelesaikan kluster | 403 | |
PowerBINotAuthorizedException | Gagal mendapatkan laporan | 401 | |
TokenExpired | Token akses telah kedaluwarsa, kirim ulang dengan token akses baru. Tidak dapat merender visual laporan berjudul: judul visual | T/A | |
OpenConnectionError | Tidak dapat menampilkan visual. Tidak dapat merender visual laporan berjudul: judul visual | T/A | Kapasitas dijeda atau dihapus saat laporan yang terkait dengan kapasitas terbuka dalam sesi |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Tidak dapat memuat skema model yang terkait dengan laporan ini. Pastikan Anda memiliki koneksi ke server dan coba lagi. | T/A |
Kesalahan umum saat menyematkan untuk pengguna yang tidak menggunakan Power BI (menggunakan Token Semat)
Pesan | Pesan Terperinci | Kode Kesalahan | Alasan |
---|---|---|---|
TokenExpired | Token akses telah kedaluwarsa, kirim ulang dengan token akses baru | 403 | Token kedaluwarsa |
LoadReportFailed | Gagal mendapatkan laporan | 404 | |
LoadReportFailed | Gagal mendapatkan laporan | 403 | ID Laporan tidak cocok dengan token |
LoadReportFailed | Gagal mendapatkan laporan | 500 | ID yang disediakan laporan bukan GUID |
Parameter tidak valid | Parameter powerbiToken tidak ditentukan | T/A | |
LoadReportFailed | Gagal menginisialisasi - Tidak dapat menyelesaikan kluster | 403 | Jenis token salah atau token buruk |
PowerBINotAuthorizedException | Gagal mendapatkan laporan | 401 | ID grup yang salah/tidak sah |
TokenExpired | Token akses telah kedaluwarsa, kirim ulang dengan token akses baru. Tidak dapat merender visual laporan berjudul: judul visual | T/A | |
OpenConnectionError | Tidak dapat menampilkan visual. Tidak dapat merender visual laporan berjudul: judul visual | T/A | Kapasitas dijeda atau dihapus saat laporan yang terkait dengan kapasitas terbuka dalam sesi |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Tidak dapat memuat skema model yang terkait dengan laporan ini. Pastikan Anda memiliki koneksi ke server dan coba lagi. | T/A |
Dapatkan laporan gagal - kesalahan 401 - selesaikan sendiri
Dalam skenario data pengguna memiliki, terkadang pengguna akan mendapatkan kesalahan 401 yang menyelesaikannya sendiri setelah mereka mengakses portal Power BI. Saat kesalahan 401 terjadi, tambahkan panggilan Izin RefreshPengguna di aplikasi seperti yang dijelaskan dalam Memperbarui izin pengguna.
Model semantik
Mengelola bagian data mana yang dapat dilihat pengguna Anda
Setiap pengguna dengan izin baca untuk model semantik dapat melihat seluruh skema (tabel, kolom, dan pengukuran) dan semua data. Anda tidak dapat mengontrol menampilkan izin untuk data mentah dan agregat secara terpisah dalam model semantik yang sama.
Untuk mengelola bagian data mana yang dapat dilihat pengguna Anda, gunakan salah satu metode berikut:
Pemfilteran tingkat baris menggunakan keamanan tingkat baris (RLS) Power BI.
Pisahkan data menjadi model semantik yang berbeda. Misalnya, Anda dapat membuat model semantik yang hanya berisi data agregat dan memberi pengguna Anda akses hanya ke model semantik tersebut.
Penyajian konten
Untuk mengatasi masalah penyajian dalam item Power BI yang disematkan (seperti laporan dan dasbor), tinjau bagian ini.
Verifikasi bahwa item Power BI dimuat di layanan Power BI
Untuk mengesampingkan masalah dengan aplikasi Anda atau API penyematan, verifikasi bahwa item dapat dilihat di layanan Power BI (powerbi.com).
Verifikasi bahwa item Power BI dimuat di taman bermain analitik tertanam Power BI
Untuk mengesampingkan masalah dengan aplikasi Anda, verifikasi bahwa item Power BI dapat dilihat di Power BI taman bermain analitik tertanam Power BI.
Verifikasi bahwa token akses Anda tidak kedaluwarsa
Untuk tujuan keamanan, token akses (token Microsoft Entra atau token semat) memiliki masa pakai terbatas. Anda harus terus memantau token akses Anda dan merefreshnya jika diperlukan. Untuk informasi selengkapnya, lihat Merefresh token akses.
Performa
Untuk mendapatkan konten tersemat berkinerja terbaik, kami sarankan Anda mengikuti praktik terbaik analitik tertanam Power BI.
Menyematkan alat penyiapan
Anda dapat melalui alat penyiapan Penyematan untuk mengunduh aplikasi sampel dengan cepat. Kemudian Anda dapat membandingkan aplikasi Anda dengan sampel.
Prasyarat
Verifikasi bahwa Anda memiliki semua prasyarat yang tepat sebelum menggunakan alat penyiapan Penyematan. Anda memerlukan akun Power BI Pro dan langganan Microsoft Azure.
- Jika Anda belum mendaftar ke Power BI Pro, daftar untuk uji coba gratis sebelum Anda mulai.
- Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Anda harus memiliki penyiapan penyewa Microsoft Entra Anda sendiri.
- Anda perlu menginstal Visual Studio (versi 2013 atau yang lebih baru).
Masalah Umum
Beberapa masalah umum yang mungkin Anda temui saat menguji dengan alat penyiapan Sematkan adalah:
Menggunakan Sematkan untuk aplikasi contoh organisasi
Jika Anda bekerja dengan Sematkan untuk pengalaman pelanggan Anda, simpan dan buka zip file PowerBI-Developer-Samples.zip. Kemudian buka folder Data PowerBI-Developer-Samples-master\App Owns dan jalankan file PowerBIEmbedded_AppOwnsData.sln.
- Saat memilih Beri izin (langkah Beri izin), Anda mendapatkan kesalahan berikut:
AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
Solusinya adalah menutup popup, tunggu beberapa detik dan coba lagi. Anda mungkin perlu mengulangi tindakan ini beberapa kali. Interval waktu menyebabkan masalah menyelesaikan proses pendaftaran aplikasi hingga saat tersedia untuk API eksternal.
- Pesan kesalahan berikut muncul saat menjalankan aplikasi sampel:
Password is empty. Please fill password of Power BI username in web.config.
Kesalahan ini terjadi karena satu-satunya nilai yang tidak dimasukkan ke dalam aplikasi sampel adalah kata sandi pengguna Anda. Buka file Web.config dalam solusi dan isi pbiPassword
bidang dengan kata sandi pengguna Anda.
- Jika Anda mendapatkan kesalahan:
AADSTS50079: The user is required to use multi-factor authentication.
Anda perlu menggunakan akun Microsoft Entra yang tidak mengaktifkan MFA.
Menggunakan Sematkan untuk aplikasi contoh organisasi
Jika Anda bekerja dengan Sematkan untuk pengalaman organisasi Anda, simpan dan buka zip file PowerBI-Developer-Samples.zip. Kemudian buka folder PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app dan jalankan file pbi-saas-embed-report.sln.
- Saat menjalankan Sematkan untuk aplikasi sampel organisasi, Anda mendapatkan kesalahan berikut:
AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
Kesalahan ini karena URL pengalihan yang ditentukan untuk aplikasi server web berbeda dari URL sampel. Jika Anda ingin mendaftarkan aplikasi sampel, gunakan https://localhost:13526/
sebagai URL pengalihan.
Jika Anda ingin mengedit aplikasi terdaftar, perbarui aplikasi terdaftar Microsoft Entra, sehingga aplikasi dapat menyediakan akses ke API web.
Jika Anda ingin mengedit profil pengguna atau data Power BI, pelajari cara mengedit data Power BI Anda.
- Jika Anda mendapatkan kesalahan:
AADSTS50079: The user is required to use multi-factor authentication.
Anda perlu menggunakan akun Microsoft Entra yang tidak mengaktifkan MFA.
Untuk informasi selengkapnya, lihat FAQ Power BI Embedded.
Untuk bantuan lebih lanjut, hubungi dukungan atau buat tiket dukungan melalui portal Azure dan berikan pesan kesalahan yang Anda temui.
Konten terkait
Pertanyaan umum tentang Power BI Embedded
Ada pertanyaan lagi? Tanyakan kepada Komunitas Power BI