Fuslogvw.exe (Penampil Log Pengikatan Assembly)

Penampil Log Pengikatan Assembly menampilkan detail pengikat assembly. Informasi ini membantu Anda dalam mendiagnosis penyebab .NET Framework yang tidak dapat menemukan assembly pada durasi. Kegagalan ini biasanya merupakan hasil dari assembly yang disebarkan ke lokasi yang salah, gambar asli yang tidak lagi valid, atau ketidakcocokan dalam nomor versi atau budaya. Kegagalan runtime bahasa umum untuk menemukan assembly biasanya muncul sebagai TypeLoadException di aplikasi Anda.

Penting

Anda harus menjalankan fuslogvw.exe dengan hak istimewa administrator.

Alat ini diinstal secara otomatis dengan Visual Studio. Untuk menjalankan alat tersebut, gunakan Perintah Pengembang Visual Studio atau PowerShell Pengembang Visual Studio dengan menggunakan mandat administrator.

Pada perintah, masukkan perintah berikut:

fuslogvw

Penampil menampilkan entri untuk setiap pengikat assembly yang gagal. Untuk setiap kegagalan, penampil menjelaskan:

  • aplikasi yang memulai pengikatan
  • assembly tujuan pengikatan, termasuk nama, versi, budaya serta kunci umumnya
  • Tanggal dan waktu terjadinya kegagalan

Panduan...

Mengubah tampilan lokasi log

  1. Pilih tombol opsi Default untuk menampilkan kegagalan ikatan untuk semua jenis aplikasi. Secara default, entri log disimpan dalam direktori setiap pengguna pada disk di cache wininet.

  2. Pilih tombol Opsi Kustom untuk menampilkan kegagalan pengikatan dalam direktori kustom yang Anda tentukan. Anda harus menentukan lokasi kustom tempat Anda ingin agar runtime bahasa umum menyimpan log dengan mengatur lokasi log kustom dalam dialog Pengaturan Log ke nama direktori yang valid. Direktori ini harus bersih dan hanya berisikan file yang dihasilkan runtime bahasa umum. Jika direktori ini berisi bagian yang dapat dijalankan, yang juga menghasilkan kegagalan yang akan dicatat, kegagalan tersebut tidak akan dicatat karena alat mencoba membuat direktori dengan nama yang sama dengan executable. Selain itu, upaya untuk menjalankan bagian yang dapat dijalankan dari lokasi log akan gagal.

    Catatan

    Lokasi pengikatan default lebih disukai daripada lokasi pengikatan kustom. Runtime bahasa umum menyimpan lokasi pengikatan default di cache wininet, sehingga membersihkannya secara otomatis. Jika Anda menentukan lokasi pengikatan kustom, Anda bertanggung jawab untuk membersihkannya.

Menampilkan detail kegagalan tertentu

  1. Pilih nama aplikasi entri yang detail kegagalannya ingin ditampilkan di penampil.

  2. Klik tombol Tampilkan Log. Sebagai alternatif, Anda dapat melakukan klik dua kali pada entri yang dipilih.

    Alat ini menampilkan detail berikut terkait kegagalan pengikatan yang dipilih:

    • Alasan tertentu atas penyebab gagalnya pengikatan, seperti "file tidak ditemukan" atau "versi tidak cocok".

    • Informasi terkait aplikasi yang memulai pengikatan, termasuk namanya, direktori akar aplikasi (AppBase), serta deskripsi jalur pencarian privat (jika ada).

    • Identitas assembly yang sedang dicari alat ini.

    • Deskripsi kebijakan versi Aplikasi, Publisher, atau Administrator apa pun yang telah diterapkan.

    • Apakah assembly ditemukan di singgahan perakitan global.

    • Daftar yang berisi semua URL probe.

Entri log sampel berikut menunjukkan informasi terperinci terkait pengikatan assembly yang gagal.

*** Assembly Binder Log Entry  (3/5/2007 @ 12:54:20 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\WINNT\Microsoft.NET\Framework\v2.0.50727\fusion.dll
Running under executable  C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\graphicfailtest.exe
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: DisplayName = graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : graphicfailtest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
===

LOG: Processing DEVPATH.
LOG: DEVPATH is not set. Falling through to regular bind.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.

Menghapus entri

Cara menghapus satu entri dari log:

  1. Pilih entri di penampil.

  2. Klik tombol Hapus Entri.

Cara menghapus semua entri dari log:

  • Klik tombol Hapus Semua.

Melakukan refresh antarmuka pengguna

  • Klik tombol Refresh. Penampil tidak otomatis mendeteksi entri log baru saat penampil sedang berjalan. Anda harus menggunakan tombol Refresh untuk menampilkannya.

Mengubah pengaturan log

Klik tombol Pengaturan untuk membuka dialog Pengaturan Log.

Menampilkan dialog Tentang

Klik tombol Tentang.

Mengikat log gambar asli

Secara default, Fuslogvw.exe mencatat permintaan pengikatan assembly normal. Atau, Anda dapat mencatat pengikatan assembly gambar asli yang dibuat dengan menggunakan Ngen.exe (Generator Gambar Asli).

Pengikatan assembly log gambar asli

  • Di grup Kategori Log, pilih tombol opsi Gambar Asli.

Log berikut menunjukkan kegagalan yang disebabkan oleh tidak adanya dependensi ketika gambar asli dibuat untuk aplikasi. Jika dependensi pada durasi berbeda dari dependensi saat Ngen.exe dijalankan, pengikatan ke gambar asli tidak diizinkan.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:22:07 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\App.exe
--- A detailed error log follows.

LOG: Start binding of native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\App.exe.
LOG: Start validating native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency b, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
WRN: Dependency assembly was not found at ngen time, but is found at binding time. Disallow using this native image.
WRN: No matching native image found.
LOG: Bind to native image assembly did not succeed. Use IL image.

Log berikut menunjukkan kegagalan pengikatan gambar asli yang terjadi karena pengaturan keamanan pada komputer saat aplikasi dijalankan berbeda dengan pengaturan keamanan pada saat gambar asli dibuat.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:29:09 PM) ***

The operation failed.
Bind result: hr = 0x80004005. Unspecified error

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\Application101622.exe
--- A detailed error log follows.

LOG: Start binding of native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\Application101622.exe.
LOG: Start validating native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency Dependency101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Dependency evaluation succeeded.
LOG: Validation of dependencies succeeded.
LOG: Start loading all the dependencies into load context.
LOG: Loading of dependencies succeeded.
LOG: Bind to native image succeeded.
Native image has correct version information.
Attempting to use native image E:\Windows\assembly\NativeImages_v2.0.50727_64\Application101622\1ac7fadabec4f72575d807501e9fdc72\Application101622.ni.exe.
Rejecting native image because it failed the security check. The assembly's permissions must have changed since the time it was ngenned, or it is running with a different security context.
Discarding native image.

Dialog Pengaturan Log

Anda dapat menggunakan dialog Pengaturan Log untuk melakukan tindakan berikut.

Cara menonaktifkan pengelogan

  • Pilih tombol opsi Log dinonaktifkan. Perhatikan bahwa opsi ini dipilih secara default.

Cara mencatat pengikatan assembly dalam pengecualian

  • Pilih tombol opsi Teks pengecualian dalam log. Hanya informasi log fusi yang paling tidak terperinci saja yang dicatat dalam teks pengecualian. Untuk menampilkan seluruh informasi, gunakan salah satu pengaturan lainnya.

    Lihat catatan Penting mengenai assembly yang dimuat sebagai assembly yang netral terhadap domain.

Cara mencatat kegagalan pengikatan assembly

  • Pilih tombol opsi Catat kegagalan pengikatan disk.

    Lihat catatan Penting mengenai assembly yang dimuat sebagai assembly yang netral terhadap domain.

Cara mencatat semua pengikatan assembly

  • Pilih tombol opsi Catat semua kegagalan pengikatan ke disk.

    Lihat catatan Penting mengenai assembly yang dimuat sebagai assembly yang netral terhadap domain.

Penting

Ketika assembly dimuat sebagai assembly yang netral terhadap domain, misalnya dengan mengatur properti LoaderOptimization ke LoaderOptimization.MultiDomain atau LoaderOptimization.MultiDomainHost, mengaktifkan pengelogan mungkin membocorkan memori dalam beberapa kasus. Hal ini dapat terjadi jika entri log dibuat ketika modul yang netral terhadap domain dimuat ke dalam domain aplikasi, dan kemudian domain aplikasi dibatalkan muatannya. Entri log mungkin tidak akan dirilis sampai proses berakhir. Beberapa debugger mengaktifkan pengelogan secara otomatis.

Cara mengaktifkan jalur log kustom

  1. Pilih tombol opsi Aktifkan jalur log kustom.

  2. Masukkan jalur ke dalam kotak teks Jalur log kustom.

Catatan

Penampil Log Pengikatan Rakitan (Fuslogvw.exe) menggunakan cache file internet untuk menyimpan log pengikatannya. Karena kerusakan sesekali di cache, Penampil Log Pengikatan Perakitan (Fuslogvw.exe) terkadang dapat berhenti menampilkan log pengikatan baru di jendela tampilan. Akibat dari kerusakan ini adalah infrastruktur pengikatan .NET (fusi) yang tidak dapat menulis atau membaca dari log pengikatan. (Masalah ini tidak ditemukan jika Anda menggunakan jalur log kustom.) Untuk memperbaiki kerusakan dan memungkinkan fusi menampilkan log pengikatan lagi, hapus cache file internet dengan menghapus file internet sementara dari bagian Riwayat penjelajahan di bawah properti Internet.

Jika aplikasi Anda yang tidak dikelola menghosting runtime bahasa umum dengan mengimplementasikan antarmuka IHostAssemblyManager dan IHostAssemblyStore, entri log tidak dapat disimpan dalam cache wininet. Untuk menampilkan entri log host kustom yang menerapkan antarmuka ini, Anda harus menentukan jalur log alternatif.

Cara mengaktifkan pengelogan untuk aplikasi yang berjalan di kontainer aplikasi Windows

  1. Aktifkan jalur log kustom, seperti yang dijelaskan dalam prosedur sebelumnya. Secara default, aplikasi yang berjalan di kontainer aplikasi Windows memiliki akses ke hard disk yang terbatas. Direktori yang Anda tentukan akan memiliki akses baca/tulis untuk semua aplikasi di kontainer aplikasi.

  2. Pilih kotak centang Aktifkan pengelogan imersif.

    Catatan

    Kotak ini hanya diaktifkan di Windows 8 atau versi Windows yang lebih baru.

Lihat juga