Cara men-debug masalah aktivasi CLR
Catatan
Artikel ini khusus untuk .NET Framework. Ini tidak berlaku untuk implementasi .NET yang lebih baru, termasuk .NET 6 dan versi yang lebih baru.
Jika Anda mengalami masalah dalam menjalankan aplikasi dengan versi yang benar dari runtime bahasa umum (CLR), Anda dapat melihat dan men-debug log aktivasi CLR. Log ini bisa sangat berguna dalam menentukan akar penyebab masalah aktivasi, saat aplikasi Anda memuat versi CLR yang berbeda dari yang diharapkan atau tidak memuat CLR sama sekali. Kesalahan Inisialisasi .NET Framework: Mengelola Pengalaman Pengguna membahas pengalaman ketika tidak ada CLR yang ditemukan untuk aplikasi.
Pencatatan aktivasi CLR dapat diaktifkan di seluruh sistem dengan menggunakan kunci registri HKEY_LOCAL_MACHINE atau variabel lingkungan sistem. Log akan dibuat hingga entri registri atau variabel lingkungan dihapus. Atau, Anda dapat menggunakan variabel lingkungan pengguna atau proses-lokal untuk mengaktifkan pengelogan dengan cakupan dan durasi yang berbeda.
Log aktivasi CLR tidak boleh disamakan dengan log pengikatan rakitan, yang sama sekali berbeda.
Untuk mengaktifkan pengelogan aktivasi CLR
Menggunakan registri
Di Editor Registri, navigasikan ke folder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework (pada komputer 32-bit) atau HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework (pada komputer 64-bit).
Tambahkan nilai string bernama
CLRLoadLogDir
, dan atur ke jalur lengkap direktori yang ada tempat Anda ingin menyimpan log aktivasi CLR.
Pengelogan aktivasi tetap diaktifkan hingga Anda menghapus nilai string.
Menggunakan variabel lingkungan
Atur variabel lingkungan
COMPLUS_CLRLoadLogDir
ke string yang mewakili jalur lengkap direktori yang ada tempat Anda ingin menyimpan log aktivasi CLR.Cara Anda mengatur variabel lingkungan akan menentukan cakupannya:
Jika Anda mengaturnya di tingkat sistem, pengelogan aktivasi diaktifkan untuk semua aplikasi .NET Framework di komputer tersebut hingga variabel lingkungan dihapus.
Jika Anda mengaturnya di tingkat pengguna, pengelogan aktivasi diaktifkan hanya untuk akun pengguna saat ini. Pengelogan berlanjut hingga variabel lingkungan dihapus.
Jika Anda mengaturnya dari dalam proses sebelum memuat CLR, pengelogan aktivasi diaktifkan hingga proses dihentikan.
Jika Anda mengaturnya pada perintah sebelum menjalankan aplikasi, pencatatan aktivasi diaktifkan untuk aplikasi apa pun yang dijalankan dari prompt perintah tersebut.
Misalnya, untuk menyimpan log aktivasi di direktori c:\clrloadlogs dengan cakupan tingkat proses, buka jendela Prompt Perintah dan ketik berikut ini sebelum Anda menjalankan aplikasi:
set COMPLUS_CLRLoadLogDir=c:\clrloadlogs
Contoh
Log aktivasi CLR menyediakan sejumlah besar data tentang aktivasi CLR dan penggunaan API hosting CLR. Sebagian besar data ini digunakan secara internal oleh Microsoft, tetapi beberapa data juga dapat berguna bagi pengembang, seperti yang dijelaskan dalam artikel ini.
Log mencerminkan urutan pemanggilan CLR hosting API. Hal ini juga mencakup data berguna tentang rangkaian runtime yang diinstal yang terdeteksi di komputer. Format log aktivasi CLR tidak didokumentasikan dengan sendirinya, tetapi dapat digunakan untuk membantu pengembang yang perlu menyelesaikan masalah aktivasi CLR.
Catatan
Anda tidak dapat membuka log aktivasi hingga proses yang menggunakan CLR dihentikan.
Catatan
Log aktivasi CLR tidak dilokalkan; log selalu dibuat dalam bahasa Inggris.
Dalam contoh log aktivasi berikut, informasi yang paling berguna disorot dan dijelaskan setelah log.
532,205950.367,CLR Loading log for C:\Tests\myapp.exe
532,205950.367,Log started at 4:26:12 PM on 10/6/2011
532,205950.367,-----------------------------------
532,205950.382,FunctionCall: _CorExeMain
532,205950.382,FunctionCall: ClrCreateInstance, Clsid: {2EBCD49A-1B47-4A61-B13A-4A03701E594B}, Iid: {E2190695-77B2-492E-8E14-C4B3A7FDD593}
532,205950.382,MethodCall: ICLRMetaHostPolicy::GetRequestedRuntime. Version: (null), Metahost Policy Flags: 0x168, Binary: (null), Iid: {BD39D1D2-BA2F-486A-89B0-B4B0CB466891}
532,205950.382,Installed Runtime: v4.0.30319. VERSION_ARCHITECTURE: 0
532,205950.382,Input values for ComputeVersionString follow this line
532,205950.382,-----------------------------------
532,205950.382,Default Application Name: C:\Tests\myapp.exe
532,205950.382,IsLegacyBind is: 0
532,205950.382,IsCapped is 0
532,205950.382,SkuCheckFlags are 0
532,205950.382,ShouldEmulateExeLaunch is 0
532,205950.382,LegacyBindRequired is 0
532,205950.382,-----------------------------------
532,205950.382,Parsing config file: C:\Tests\myapp.exe
532,205950.382,UseLegacyV2RuntimeActivationPolicy is set to 0
532,205950.382,LegacyFunctionCall: GetFileVersion. Filename: C:\Tests\myapp.exe
532,205950.382,LegacyFunctionCall: GetFileVersion. Filename: C:\Tests\myapp.exe
532,205950.382,C:\Tests\myapp.exe was built with version: v2.0.50727
532,205950.382,ERROR: Version v2.0.50727 is not present on the machine.
532,205950.398,SEM_FAILCRITICALERRORS is set to 0
532,205950.398,Launching feature-on-demand installation. CmdLine: C:\Windows\system32\fondue.exe /enable-feature:NetFx3
532,205950.398,FunctionCall: RealDllMain. Reason: 0
532,205950.398,FunctionCall: OnShimDllMainCalled. Reason: 0
Log Pemuatan CLR menyediakan jalur ke file yang dapat dieksekusi yang memulai proses yang memuat kode terkelola. Perhatikan bahwa ini bisa menjadi host asli.
532,205950.367,CLR Loading log for C:\Tests\myapp.exe
Runtime Terinstal adalah kumpulan versi CLR yang diinstal di komputer yang merupakan kandidat untuk permintaan aktivasi.
532,205950.382,Installed Runtime: v4.0.30319. VERSION_ARCHITECTURE: 0
dibuat dengan versi adalah versi CLR yang digunakan untuk membangun biner yang disediakan untuk metode seperti ICLRMetaHostPolicy::GetRequestedRuntime.
532,205950.382,C:\Tests\myapp.exe was built with version: v2.0.50727
Penginstalan fitur sesuai permintaan mengacu pada pengaktifan .NET Framework 3.5 di Windows 8. Lihat Kesalahan Inisialisasi .NET Framework: Mengelola Pengalaman Pengguna untuk informasi selengkapnya tentang skenario ini.
532,205950.398,Launching feature-on-demand installation. CmdLine: C:\Windows\system32\fondue.exe /enable-feature:NetFx3
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk