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 RegisterEventSource
adla 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\EventLog
olmalı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\sourcename
kayı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\sourcename
kayı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 MessageIDTypedef
WORD
nasıl tanımlanacağı gösterir. Bununla birlikte, Olay Kimliklerinin öğesinin serbest bırakıldığına HIWORD
neden olur. Bu sorunu düzeltmek için yalnızca bir kez tanımlayın MessageIdTypedef=
ve olarak DWORD
ayarlayı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.