it-swarm.com.de

Die Beschreibung für die Ereignis-ID aus der Quelle wurde nicht gefunden

Wenn ich ein Protokoll in das Windows-Ereignisprotokoll schreibe, wird unten ein Ereignis angezeigt. Was ist die Hauptursache für diese Nachricht und wie kann ich das Problem beheben? Danke vielmals

Die Beschreibung für Ereignis-ID 51001 von Quell-RRWS kann nicht gefunden werden . Entweder die Komponente, die dies auslöst event ist nicht auf Ihrem lokalen .__ installiert. Computer oder die Installation ist beschädigt. Sie können .__ installieren oder reparieren. die Komponente auf dem lokalen Computer.

Wenn das Ereignis aus einem anderen .__ stammt. Computer hatte die Anzeigeinformation mit der Veranstaltung gerettet werden.

Die folgenden Informationen wurden aufgenommen mit der Veranstaltung: 

test log messge

die Nachrichtenressource ist vorhanden, aber Die Nachricht wird nicht in der .__ gefunden. Zeichenfolge/Nachrichtentabelle

52
Ji Yalin

Ich habe diesen Fehler nach dem Erstellen einer Ereignisquelle im Anwendungsprotokoll über die Befehlszeile mit "EventCreate" erhalten. Dieser Befehl erstellt einen neuen Schlüssel unter: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application

Wenn Sie sich den erstellten Schlüssel ansehen (z. B. SourceTest), wird ein Zeichenfolgenwert namens EventMessageFile angezeigt, der für mich auf %SystemRoot%\System32\EventCreate.exe festgelegt wurde.

Ändern Sie dies in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll

Löschen Sie die Werte für CustomSource und TypesSupported.

Dadurch sollte die Meldung "Die Beschreibung für Ereignis-ID ..." angehalten werden.

26
Matt

Ein Freund von mir hatte genau das gleiche Problem. Er probierte alle beschriebenen Optionen aus, aber nichts schien zu funktionieren. Nach vielen Studien, auch von Microsofts Beschreibung , schloss er den Neustart des Systems. Es funktionierte!!

Es scheint, dass das Betriebssystem die Liste der registrierten Ereignisquellen nicht in allen Fällen aktualisiert. Erst nach einem Neustart können Sie sicher sein, dass die Ereignisquellen ordnungsgemäß registriert sind.

Fazit: Starten Sie Ihr System neu!

16
Bruno Bieri

Sie müssen eine Ereignisquelle und eine Nachrichtendatei dafür erstellen. Code sieht ungefähr so ​​aus:

var data = new EventSourceCreationData("yourApp", "Application");
data.MessageResourceFile = pathToYourMessageFile;
EventLog.CreateEventSource(data);

Dann müssen Sie eine message Datei erstellen. Es gibt auch diesen Artikel , der die Dinge erklärt (ich habe nicht alles gelesen, aber es scheint ziemlich abgeschlossen zu sein).

11
Stefan Egli

Wie wäre es mit einer echten Weltlösung?.

Wenn Sie nur eine "schnelle und schmutzige" Methode benötigen, um etwas in das Ereignisprotokoll zu schreiben, ohne "benutzerdefinierte Quellen" zu registrieren (erfordert Administratorrechte) oder "Nachrichtendateien" (erfordert Arbeit und Kopfschmerzen), tun Sie dies einfach :

EventLog.WriteEntry(
    ".NET Runtime", //magic
    "Your error message goes here!!",
    EventLogEntryType.Warning,
    1000); //magic

Auf diese Weise schreiben Sie in ein vorhandenes "Application" -Protokoll, ohne die lästigen "Die Beschreibung für Ereignis-ID 0 kann nicht gefunden werden".

Wenn Sie den "magischen" Teil erklären wollen, habe ich darüber gebloggt hier

9
Alex

Erstellen Sie mit PowerShell Ihr Ereignisprotokoll und Ihre Ereignisquelle:

New-EventLog -LogName MyApplicationLog `
    -Source MySource `
    -MessageResourceFile C:\windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll

Sie benötigen die Nachrichten-DLL, um das Problem zu vermeiden, das Sie sehen.

4

Ich bin auch darüber gestolpert - obwohl dies durch eine weitere Möglichkeit verursacht wurde: Der Ereigniskennzeichner (der in einem #define "Verschleiert" war) setzte Schweregrad auf error (die zwei höherwertigen Bits, wie in Event Identifiers angegeben). Da Event Viewer die Ereignis-ID (die niederwertigen 16 Bits) anzeigt, konnte keine Übereinstimmung gefunden werden ...

Als Referenz habe ich eine Reihe von Tipps zusammengestellt, die auf meinen eigenen Recherchen basieren, während ich Fehlerbehebungs- und Fehlerbehebungsmaßnahmen durchführe:

  1. Wenn Ihr Protokolleintrag nicht ​​mit ") endet, ist die Nachrichtenressource vorhanden, aber die Nachricht wurde nicht in der Zeichenfolge-/Nachrichtentabelle gefunden " (im Gegensatz dazu) zur ursprünglichen Frage):

    • Bedeutet, dass Registrierungsinformationen fehlen
    • Überprüfen Sie den Namen der Ereignisquelle und die Registrierungsschlüssel
  2. Wenn Sie Registrierungsinformationen hinzufügen/bearbeiten müssen, beachten Sie Folgendes:

    • Neustart Event Viewer (wie in Punkt 6 von KB166902 und auch von @JotaBe angegeben)
    • Wenn dies nicht hilft, starten Sie den Dienst Windows Event Log /EventLog neu (oder starten Sie das System neu, wie von @BrunoBieri angegeben).
  3. Wenn Sie nicht ​​eine benutzerdefinierte DLL Ressource erstellen möchten, beachten Sie, dass häufig verfügbare Ereignismeldungsdateien einige Einschränkungen aufweisen:

    • Sie enthalten eine große Anzahl von Bezeichnern, mit denen versucht wird, die meisten Fälle Abzudecken.
      • .NET EventLogMessages.dll (Wie von @Matt angedeutet) geht auf 0xFFFF
      • Windows EventCreate.exe "Nur" bis 0x3E9
    • Jeder Eintrag enthält %1
      • Das bedeutet, dass nur die Zeichenfolge first angezeigt ​​ist
      • Alle Zeichenfolgen, die an ReportEvent übergeben wurden, können weiterhin durch Überprüfen der Ereignisdetails überprüft werden (wählen Sie das gewünschte Ereignis aus, gehen Sie zur Registerkarte Details und erweitern Sie diese EventData )
  4. Wenn Sie noch " kann nicht gefunden werden " in Ihren protokollierten Ereignissen erhalten (ursprüngliche Frage):

    • Überprüfen Sie, ob die Ereignis-ID - Werte verwendet wird (in meinem Fall war dies der - Qualifikationsmerkmale Teil des Ereigniskennung)
    • Vergleichen Sie die Ereignisdetails (wählen Sie das gewünschte Ereignis aus, gehen Sie zur Registerkarte Details und erweitern Sie System ) mit einem Arbeitsbeispiel
3

Ich hatte auch ein ähnliches Problem. Nachdem ich viele Nachforschungen angestellt hatte, überprüfte ich die Schritte gemäß diesem Artikel http://www.codeproject.com/Articles/4166/Using-MC-exe-message-resources-and-the -NT-event-lo Alles schien an seinem Platz zu sein. Abgesehen von einer Sache ... ich habe es bemerkt, als ich über dieses MSDN gestolpert bin: http://msdn.Microsoft.com/en-us/library/windows/desktop/aa363661 (v = vs.85). aspx

Der letzte Absatz besagt .. 'Wenn die Anwendung RegisterEventSource aufruft und einen Quellnamen übergibt, der nicht in der Registrierung gefunden werden kann, verwendet der Ereignisprotokollierungsdienst standardmäßig das Anwendungsprotokoll. Da jedoch keine Nachrichtendateien vorhanden sind, kann die Ereignisanzeige keine Ereigniskennungen oder Ereigniskategorien einer Beschreibungszeichenfolge zuordnen und zeigt einen Fehler an. Aus diesem Grund sollten Sie der Registrierung für Ihre Anwendung eine eindeutige Ereignisquelle hinzufügen und eine Nachrichtendatei angeben. ' Daher stimmte mein Anwendungsname in RegisterEventSource nicht mit dem Anwendungsnamen in der Registrierung überein. Ich habe das behoben und jetzt funktioniert es ... Bitte überprüfen Sie Ihre Registrierungseinträge, wenn Sie auf dieses Problem stoßen.

2
Sonal

Für mich bestand das Problem darin, dass mein Zielprofil versehentlich auf ".Net Framework 4 Client-Profil" gesetzt wurde. Wenn ich den fraglichen Dienst mit ".Net Framework 4" neu aufgebaut habe, ist das Problem behoben!

1
Johan Burman

Wenn Sie den Ereignisprotokoll-Viewer öffnen, bevor die Ereignisquelle erstellt wird, beispielsweise während der Installation eines Dienstes, wird diese Fehlermeldung angezeigt. Sie müssen das Betriebssystem nicht neu starten: Sie müssen lediglich die Ereignisanzeige schließen und öffnen.

HINWEIS: Ich kann keine benutzerdefinierte Nachrichtendatei bereitstellen. Die Erstellung der Ereignisquelle verwendet die Standardkonfiguration wie in Matts Antwort .

0
JotaBe