Hatayla ilgili sorunları giderme: Olay İletisi Bulunamadı

Bu makale, Olay Görüntüleyicisi: Olay İletisi Bulunamadı hatasını gidermenize yardımcı olur.

Orijinal ürün sürümü: Windows
Özgün KB numarası: 166902

Belirtiler

Olay Görüntüleyicisi'daki olaylar için aşağıdaki hata iletisi görüntülenebilir:

Kaynakta (<uygulama adı>) Olay Kimliği ( <####> ) açıklaması bulunamadı. Aşağıdaki ekleme dizelerini içerir: <ReportEvent> tarafından günlüğe kaydedilen iletinin metni.

Aşağıda olası nedenler ve sorunun nasıl çözüleceğini gösteren daha fazla bilgi listelenmiştir. Bunun nedeni aşağıdakilerden biri veya daha fazlası olabilir:

RegisterEventSource'a yanlış kaynak adı parametresi geçirildi

Kayıt defterindeki kaynak adının öğesine geçirilen RegisterEventSourceadla eşleştiğinden emin olun. Kaynak kayıt defterinde bulunmasa bile bu işlev başarılı olur. Kayıt defterindeki kaynak adı bir alt anahtarında HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLogolmalıdır.

Genellikle bir uygulama kaynağı, uygulama alt anahtarı altında listelenir.

Kayıt defterindeki .dll veya .exe dosyasının yolu yanlış

konumunda bulunan HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\sourcenamekayıt EventMessageFile defteri değerinde, .dll veya .exe dosyasının yolunun doğru olduğunu ve .dll veya .exe dosyasının adının doğru olduğunu doğrulayın. Bu durumda, Olay Görüntüleyicisi uygulaması ileti kaynaklarının kaynağını yükleyemiyor. Ayrıca, veya başka bir makro kullanıyorsanız %SystemRoot% , REG_EXPAND_SZ kayıt defteri değer türünü kullanmanız gerekir. Aksi takdirde, makro genişletilmez.

Kayıtlı ileti kaynağı yanlış .dll veya .exe dosyası

konumunda bulunan HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\sourcenamekayıt EventMessageFile defteri değerinde, .dll veya .exe dosyasının yolunun beklenen ileti kaynaklarını içeren yol olduğunu doğrulayın. Yolu olmayan bir EventMessageFile dosyayı listelemeye ve aynı ada sahip birden çok dosyaya sahip olmaya dikkat edin. Olay Görüntüleyicisi, LoadLibrary API'sinin açıklamalarında belgelenen arama algoritmasını kullanarak ileti kaynağını bulmak için kuralları izler.

İleti kaynakları EventMessageFile kaynağında bağlı değil

Günlük örneğinin bir sürümü derlemenin parçası olarak .rc dosyasını derleme dosyasına ekleyemedi. Sonuç olarak, DLL oluşturulur, ancak derlemeye hiçbir ileti kaynağı dahil değildir. Bazı geliştiriciler, ileti derleyicisinden alınan .bin dosyasını kaynak olarak eklemeyi denedi. Kaynağı DLL'ye düzgün bağlamaz. kaynağı 1 kimliği ve türü 11 (RT_MESSAGETABLE ) olarak işaretlediğinden, ileti derleyicisinden alınan .rc dosyasını kullanmanız gerekir. Olay Görüntüleyicisi ileti kaynaklarını bulabilmek için gereklidir.

DLL'yi derlemek EventMessageFile için Visual C++ kullanıyorsanız, ileti derleyicisinden alınan .rc dosyasını Visual C++ projesinin kaynak dosyası olarak eklemeniz gerekir. Visual C++'a .rc dosyasını derlemesini ve ardından kaynakları DLL'ye bağlamasını söyler.

Doğru kimliğin ReportEvent işlevine geçirildiğinden emin olun

Birçoğu, dosyada bulunan değişmez kimlik numarasının .mc doğru kimlik olduğunu düşünür. Böyle değildir, çünkü ileti derleyicisi bit düzeyinde ORS kimlik numarasını LOWORD ve bit düzeyinde OR'leri önem derecesini ve tesis bitlerini içine alır HIWORD. Bir uygulama her zaman ileti derleyicisinden alınan üst bilgi dosyasında sembolik adı kullanmalıdır.

Dosyasındaki MessageIdTypedef= deyimini .mc doğrulayın. Bazı örnek .mc dosyalar, Kategori Kimlikleri için öğesinin MessageIDTypedefWORD nasıl tanımlanacağı gösterir. Bununla birlikte, Olay Kimliklerinin öğesinin serbest bırakıldığına HIWORDneden olur. Bu sorunu düzeltmek için yalnızca bir kez tanımlayın MessageIdTypedef= ve olarak DWORDayarlayın.

Ayrıca, MC -c komut satırının ileti kaynakları ve üst bilgi dosyası için tutarlı bir şekilde kullanıldığından emin olun. Anahtar, -c ileti kimliğinde HIWORD biraz açılır.

EventMessageFile girdisini eklediğinizden Olay Görüntüleyicisi yeniden başlatılmadı

Olay Görüntüleyicisi, olay kaynakları için yüklemiş olduğu DLL'leri önbelleğe alır. Olay görüntüleyici başlatıldıktan sonra kayıt defterini uygun bir dizin veya kaynak adı verecek şekilde değiştirdiyseniz, Olay Görüntüleyicisi yeniden başlatmanız gerekir.