webentwicklung-frage-antwort-db.com.de

Die Quelle wurde nicht gefunden, aber einige oder alle Ereignisprotokolle konnten nicht durchsucht werden. Unzugängliche Protokolle: Sicherheit

Ich erhalte eine Fehlermeldung:

Die Quelle wurde nicht gefunden, aber einige oder alle Ereignisprotokolle konnten nicht durchsucht werden. Unzugängliche Protokolle: Sicherheit

Wenn ich den folgenden Code ausführe, um Fehler auf dem Win 2K12 R2-Server zu erfassen IIS 8.5

EventLog elog = new EventLog();
EventLog.CreateEventSource("MyApp", "Application");
EventLog.WriteEntry(Source, swError.ToString(), EventLogEntryType.Error);

Ich habe vollen Zugriff auf HKLM\SYSTEM\CurrentControlSet\services\eventlog aber es funktioniert immer noch nicht. Was soll ich tun, um das Problem zu beheben?

58
user1480864

Siehe Erstellen eines Registrierungsschlüssels .

Dieses Problem kann nicht nur aufgrund von Berechtigungen auftreten, sondern auch aufgrund des Fehlens des Ereignisquellschlüssels, da dieser nicht erfolgreich registriert wurde (dazu benötigen Sie Administratorrechte - wenn Sie Visual Studio wie gewohnt öffnen und das Programm normal ausführen, hat es gewonnen). nicht genug sein). Stellen Sie sicher, dass Ihre Ereignisquelle "MyApp" tatsächlich registriert ist, d. H. In der Registrierung unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application.

Von MSDN EventLog.CreateEventSource () :

Um eine Ereignisquelle in Windows Vista und höher oder Windows Server 2003 zu erstellen, müssen Sie über Administratorrechte verfügen.

Daher müssen Sie entweder den Registrierungscode der Ereignisquelle als Administrator ausführen (prüfen Sie auch, ob die Quelle bereits vorhanden ist - siehe obiges MSDN-Beispiel) oder Sie können den Schlüssel manuell zur Registrierung hinzufügen:

  1. erstelle einen Registrierungsschlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp;
  2. erstellen Sie im Inneren einen Zeichenfolgenwert EventMessageFile und setzen Sie seinen Wert auf z. C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll
61
w128

Ich habe diesen Fehler beim Ausführen von Visual Studio erhalten. Durch Ausführen von Visual Studio als Administrator konnte die Anwendung auf die Sicherheitsprotokolle zugreifen, da sie über ausreichende Berechtigungen verfügte (wodurch der Fehler verhindert wurde).

29
SharpC

Ich weiß, ich bin ein bisschen zu spät zur Party ... was oft passiert, du verwendest nur Standardeinstellungen in deinem App-Pool in IIS. Wechseln Sie im IIS Administrationsdienstprogramm zu app pools->select pool-->advanced settings->Process Model/Identity und wählen Sie eine Benutzeridentität mit den entsprechenden Berechtigungen aus. Standardmäßig ist ApplicationPoolIdentity eingestellt. Wenn Sie Entwickler sind, haben Sie höchstwahrscheinlich einen Administrator auf Ihrem Computer, sodass Sie Ihr Konto für die Ausführung des App-Pools auswählen können. Lassen Sie Administratoren auf den Bereitstellungsservern damit umgehen.

6
T.S.

Wenn Sie Visual Studio starten, führen Sie es als Administrator aus. Für mich geht das.

3
Divya

versuchen Sie, der AppPool-ID oder den Netzwerkdiensten den entsprechenden Zugriff auf HKLM\SYSTEM\CurrentControlSet\services\eventlog\security zu gewähren. Ich bekam den gleichen Fehler. Das hat bei mir funktioniert. Siehe, der Fehler besagt auch, dass die unzugänglichen Protokolle Sicherheitsprotokolle sind.

Ich gab auch Erlaubnis in eventlog\application.

Ich habe überall vollen Zugriff gegeben.

2
Aditi

Vor Ort habe ich Visual Studio mit Admin-Rechten ausführen und der Fehler war weg.

Wenn Sie diese Fehlermeldung im Taskplaner erhalten, müssen Sie aktivieren Sie die Option mit hohen Berechtigungen ausführen.

1

Dies kann auch daran liegen, dass die erforderliche DLL-Datei möglicherweise nicht gefunden werden kann. Entweder befindet sich die Datei nicht im Ordner oder sie wird umbenannt. Ich hatte das gleiche Problem und stellte fest, dass die DLL-Datei in meinem Bin-Ordner irgendwie fehlte.

1
sandeep kumar

Verwenden Sie NetworkService als Identitätswert in den erweiterten Einstellungen des Anwendungspools, wenn Sie in Visual Studio debuggen. ApplicationPoolIdentity funktioniert, wenn Sie die Site direkt über den Browser öffnen (oder zum virtuellen Verzeichnis in IIS und die Option Durchsuchen rechts verwenden).

0
Pablishe

Ich habe kürzlich begonnen, diesen Fehler in meinem internen NLog-Fehlerprotokoll mit Visual Studio 2013 zu erhalten. Die Lösung verwendet NLog v2.0.0 seit mehreren Jahren. Im letzten Monat hat unser Hauptprotokoll nicht mehr funktioniert. Um dies zu beheben, habe ich NLog über Nuget auf die neueste Version (v3.1.0) aktualisiert. Die Sicherheitsausnahme ist jetzt weg und ALLE Protokollmeldungen werden erneut angezeigt.

Außerdem habe ich später eine weitere Sicherheitsausnahme gefunden und konnte diese beheben, indem ich den Anweisungen in diesem Beitrag in einem anderen Thread gefolgt bin.

0
cat5dev