Fuslogvw.exe (Derleme Bağlaması Günlük Görüntüleyici)
Derleme Bağlama Kayıt Günlüğü Görüntüleyici derleme bağlamalar için ayrıntıları görüntüler. Bu bilgiler .NET Framework'ün çalışma zamanında niye bir derlemeyi bulamadığını tanılamanıza yardımcı olur. Bu hatalar genellikle derlemenin yanlış yere yayınlanması sonucudur, geçerli olmayan yerel bir resim veya kültürlerin uyuşmayan bir sürüm numarası. Ortak dil çalışma zamanının bir derlemeyi bulamaması genellikle uygulamanızda olarak TypeLoadException gösterilir.
Önemli
fuslogvw.exe'yi yönetici ayrıcalıklarıyla çalıştırmalısınız.
Bu araç, Visual Studio ile birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya yönetici kimlik bilgileriyle Visual Studio Geliştirici PowerShell'i kullanın.
Komut isteminde aşağıdaki komutu girin:
fuslogvw
Görüntüleyici başarısız bağlanan her derleme için bir girdi gösterir. Her hata için görüntüleyici şunları açıklar:
- bağlamayı başlatan uygulama
- ad, sürüm, kültür ve ortak anahtar dahil olmak üzere bağlamanın bulunduğu derleme
- hatanın tarihi ve saati
Nasıl yapılır...
- Günlük konumu görünümünü değiştirme
- Belirli bir hatayla ilgili ayrıntıları görüntüleme
- Girdileri silme
- Kullanıcı arabirimini yenileme
- Günlük ayarlarını değiştirme
- Hakkında iletişim kutusunu görüntüleme
Günlük konumu görünümünü değiştirme
Tüm uygulama türlerinin bağlama hatalarını görüntülemek için Varsayılan seçenek düğmesini seçin. Varsayılan olarak, wininet önbelleğinde disk üzerinde her kullanıcı dizini içinde günlük kayıtları depolanır.
Belirttiğiniz özel dizindeki bağlama hatalarını görüntülemek için Özel seçenek düğmesini seçin. Günlük Ayarları iletişim kutusundaki özel günlük konumunu geçerli bir dizin adına ayarlayarak çalışma zamanının günlükleri depolamasını istediğiniz özel konumu belirtmeniz gerekir. Dizin temiz olmalıdır ve sadece çalışma zamanının oluşturduğu dosyaları içermelidir. Eğer günlüğe kaydedilecek hata üreten bir çalıştırılabilir dosya içeriyorsa, başarısızlık günlüğe kaydedilmeyecek çünkü araç çalıştırılabilir olanla aynı isimde bir dizin yaratmaya çalışacaktır. Buna ek olarak, bir yürütülebilir çalıştırma denemesi bu günlük konumunda başarısız olur.
Not
Varsayılan bağlama konumu özel bağlama konumuna tercih edilir. Çalışma zamanı varsayılan bağlama konumunu wininet önbelleğinde depolar ve bu nedenle otomatik olarak temizler. Özel bir bağlama konumu belirtirseniz, bunu temizlemek sizin sorumluluğundadır.
Belirli bir hatayla ilgili ayrıntıları görüntüleme
Görüntüleyiciden istenen uygulamanın girişini seçin.
Günlüğü Görüntüle düğmesine tıklayın. Alternatif olarak, seçili girdiye çift tıklayabilirsiniz.
Araç seçili bağlama başarısızlığı hakkında aşağıdaki ayrıntıları görüntüler:
"Dosya bulunamadı" veya "sürüm uyuşmazlığı" gibi belirli nedenler bağlamayı başarısız yapabilir.
Eğer varsa, adını, uygulamanın kök dizinini (AppBase) ve özel arama yolunun bir açıklamasını içeren bağlama ilklendiren uygulama hakkında bilgi.
Derlemenin kimliğine araç tarafından bakılıyor.
Herhangi bir uygulama, Yayıncı veya Yönetici sürüm ilkeleri açıklamaya uygulanır.
Derlemenin genel derleme önbelleğinde bulunup bulunmadığı.
Tüm algılama URL'lerinin listesi.
Aşağıdaki örnek günlük girdisi başarısız bir derleme bağlama hakkında ayrıntılı bilgi gösterir.
*** 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.
Girdileri silme
Günlükten tek bir girişi silmek için:
Görüntüleyicide bir girdi seçin.
Girdiyi Sil düğmesine tıklayın.
Günlükten tüm girdileri silmek için:
- Tümünü Sil düğmesine tıklayın.
Kullanıcı arabirimini yenileme
- Yenile düğmesine tıklayın. Görüntüleyici çalışırken yeni günlük girdilerini otomatik olarak algılamaz. Bunları görüntülemek için Yenile düğmesini kullanmanız gerekir.
Günlük ayarlarını değiştirme
Günlük Ayarları iletişim kutusunu açmak için Ayarlar düğmesine tıklayın.
Hakkında iletişim kutusunu görüntüleme
Hakkında düğmesine tıklayın.
Yerel görüntüler için bağlama günlükleri
Varsayılan olarak, Fuslogvw.exe normal derleme bağlama isteklerini günlüğe kaydeder. Alternatif olarak, Ngen.exe (Yerel Görüntü Oluşturucu) kullanılarak oluşturulan yerel görüntüler için derleme bağlamalarını günlüğe kaydedebilirsiniz.
Yerel görüntüler için günlük derlemesi bağlamaları
- Günlük Kategorileri grubunda Yerel Görüntüler seçenek düğmesini seçin.
Aşağıdaki günlük kaydı uygulama için özgün görüntü oluştuğunda varolmayan bir bağımlılıktan kaynaklı bir başarısızlığı gösterir. Eğer çalışma zamanındaki bağımlılık Ngen.exe çalışırken oluşan bağımlılıktan farklıysa, yerel bir görüntü bağlamaya izin vermez.
*** 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.
Aşağıdaki günlük kaydı yerel görüntünün oluştuğu zamandaki güvenlik ayarlarından farklı bir uygulama çalıştığında bilgisayardaki güvenlik ayarlarından dolayı yerel bir görüntü bağlama başarısız olarak gösterilir.
*** 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.
Günlük Ayarları iletişim kutusu
Aşağıdaki eylemleri gerçekleştirmek için Günlük Ayarları iletişim kutusunu kullanabilirsiniz.
Günlüğe kaydetmeyi devre dışı bırakmak için
- Devre dışı bırak seçeneği düğmesini seçin. Bu seçeneğin varsayılan olarak seçili geldiğini unutmayın.
İstisnalar içinde derleme bağlamalarını günlüğe kaydetmek için
Oturum aç özel durum metni seçenek düğmesini seçin. İstisna metninin içinde yalnızca füzyon günlük kaydı bilgileri kaydedilir. Tüm bilgileri görmek için diğer seçeneklerden birini kullanın.
Etki alanı nötr olarak yüklenen derlemelerle ilgili önemli bir not bırakın.
Derleme bağlama başarısızlıklarını günlüğe kaydetmek için
Diske bağlama hatalarını günlüğe kaydet seçenek düğmesini seçin.
Etki alanı nötr olarak yüklenen derlemelerle ilgili önemli bir not bırakın.
Tüm derleme bağlamalarını günlüğe kaydetmek için
Tüm diske bağlamaları günlüğe kaydet seçenek düğmesini seçin.
Etki alanı nötr olarak yüklenen derlemelerle ilgili önemli bir not bırakın.
Önemli
Bir derleme, örneğin özelliğini LoaderOptimization.MultiDomain veya LoaderOptimization.MultiDomainHostolarak ayarlayarak LoaderOptimization etki alanı nötr olarak yüklendiğinde, günlüğün açılması bazı durumlarda bellek sızıntısına neden olabilir. Etki alanı nötr modu bir uygulama etki alanına yüklendiğinde ve uygulama etki alanı boşaltıldığında eğer günlük kaydı girişi yapılmışsa bu olur. Günlük girdisi işlem bitene kadar serbest bırakılmayabilir. Bazı hata ayıklayıcılar otomatik olarak günlüğe kaydetmeyi etkinleştirebilir.
Özel bir günlük kaydı yolunu etkinleştirmek için
Özel günlük yolunu etkinleştir seçenek düğmesini seçin.
Özel günlük yolu metin kutusuna yolu girin.
Not
Derleme Bağlama Günlüğü Görüntüleyicisi (Fuslogvw.exe), bağlama günlüğünü depolamak için internet dosya önbelleğini kullanır. Önbellekteki zaman zaman bozulma nedeniyle, Derleme Bağlama Günlük Görüntüleyicisi (Fuslogvw.exe) bazen görüntüleme penceresinde yeni bağlama günlüklerini göstermeyi durdurabilir. Bu bozulmanın sonucu olarak, .NET bağlama altyapısı (füzyon) bağlama günlüğüne yazamaz veya okuyamaz. (Özel bir günlük yolu kullanıyorsanız bu sorunla karşılaşılmaz.) Bozulmayı düzeltmek ve fusion'ın bağlama günlüklerini yeniden göstermesine izin vermek için, İnternet özellikleri altındaki Gözatma geçmişi bölümünden geçici internet dosyalarını silerek İnternet dosya önbelleğini temizleyin.
Yönetilmeyen uygulamanız ve IHostAssemblyStore
arabirimlerini uygulayarak IHostAssemblyManager
ortak dil çalışma zamanını barındırıyorsa, günlük girdileri wininet önbelleğinde depolanamaz. Bu arabirimleri uygulayan özel barındırmalar için günlük girdilerini görüntülemek için, alternatif bir günlük yolu belirtmelisiniz.
Windows uygulama kapsayıcısı içinde çalışan uygulamalar için günlük kaydediciyi etkinleştirmek için
Önceki prosedürde açıklandığı gibi özel bir günlük yolunu etkinleştirin. Varsayılan olarak, Windows uygulama kapsayıcı içinde çalışan uygulamaların hard disk erişimi sınırlıdır. Uygulama kapsayıcı içerisindeki bütün uygulamalar için belirlediğiniz dizinin okuma/yazma erişim hakkı vardır.
Tam ekran günlüğe kaydetmeyi etkinleştir onay kutusunu seçin.
Not
Bu kutu yalnızca Windows 8 veya sonrasında etkindir.