Ich erhalte die folgende Ausnahme. Ich habe dem Asp.net-Konto in Eventlogs in der Registrierungsbearbeitung die volle Kontrolle gegeben.
[SecurityException: Die Quelle wurde nicht gefunden, aber einige oder alle Ereignisprotokolle konnten nicht durchsucht werden. Unzugängliche Protokolle: Sicherheit.]
System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly, Boolean wantToCreate) +664 System.Diagnostics.EventLog.SourceExists(String source, String machineName, Boolean wantToCreate) +109 System.Diagnostics.EventLog.SourceExists(String source) +14 Microsoft.ApplicationBlocks.ExceptionManagement.DefaultPublisher.VerifyValidSource() +41
Ich denke, das liegt an einem Konfigurationsproblem auf dem Server?
Antworten:
EventLog.SourceExists
Zählt die Unterschlüssel vonHKLM\SYSTEM\CurrentControlSet\services\eventlog
auf, um festzustellen , ob sie einen Unterschlüssel mit dem angegebenen Namen enthalten. Wenn das Benutzerkonto, unter dem der Code ausgeführt wird, keinen Lesezugriff auf einen Unterschlüssel hat, auf den es zugreifen möchte (in Ihrem Fall dasSecurity
möchte Unterschlüssel), bevor Zielquelle gefunden wird, wird eine Ausnahme wie die von Ihnen beschriebene angezeigt.Der übliche Ansatz zur Behandlung solcher Probleme besteht darin , Ereignisprotokollquellen zur Installationszeit (unter einem Administratorkonto) zu registrieren und dann davon auszugehen, dass sie zur Laufzeit vorhanden sind, sodass eine resultierende Ausnahme als unerwartet behandelt werden kann, wenn eine Zielereignisprotokollquelle nicht vorhanden ist zur Laufzeit.
quelle
Hatte die gleiche Ausnahme. In meinem Fall musste ich die Eingabeaufforderung mit Administratorrechten ausführen.
Klicken Sie im Startmenü mit der rechten Maustaste auf Eingabeaufforderung und wählen Sie "Als Administrator ausführen".
quelle
Für mich war dieser Fehler auf die Eingabeaufforderung zurückzuführen, die nicht unter Administratorrechten ausgeführt wurde. Sie müssen mit der rechten Maustaste auf die Eingabeaufforderung klicken und " Als Administrator ausführen" sagen .
Sie benötigen eine Administratorrolle, um einen Dienst zu installieren oder zu deinstallieren.
quelle
Starten Sie die Developer-Befehlszeile "Als Administrator". Dieses Konto hat vollen Zugriff auf das Sicherheitsprotokoll
quelle
Hat nicht für mich gearbeitet.
Ich habe einen neuen Schlüssel- und Zeichenfolgenwert erstellt und es geschafft, ihn zum Laufen zu bringen
quelle
Bei mir hat gerade iisreset funktioniert (cmd als Administrator ausführen -> iisreset). Vielleicht könnte es jemand versuchen.
quelle
Eine neue Ereignisquelle muss in allen Protokollen einen eindeutigen Namen haben, einschließlich Sicherheit (für die beim Lesen Administratorrechte erforderlich sind).
Ihre App benötigt also Administratorrechte , um eine Quelle zu erstellen. Aber das ist wahrscheinlich ein Overkill.
Ich habe dieses Powershell-Skript geschrieben , um die Ereignisquelle nach Belieben zu erstellen. Speichern Sie es als
*.ps1
und führen Sie es mit einem beliebigen Privileg aus, und es wird sich selbst erhöhen.quelle
Ich habe kürzlich den Fehler festgestellt, und keine der Lösungen hat bei mir funktioniert. Was den Fehler für mich behoben hat, war das Hinzufügen des Anwendungspoolbenutzers zur Hauptbenutzergruppe in der Computerverwaltung. Ich konnte die Administratorgruppe aufgrund einer Unternehmensrichtlinie nicht verwenden.
quelle
Wenn Sie eine Neuinstallation der SenseNet TaskManagement-Website auf IIS durchführen (aus dem Quellcode, nicht aus WebPI), wird diese Meldung angezeigt, die normalerweise mit der SignalR-Kommunikation zusammenhängt. Wie @ nicole-caliniou betont, ist eine Schlüsselsuche in der Registrierung .
Um dies für SenseNet TaskManagement v1.1.0 zu beheben, suchen Sie zuerst den Namen des Registrierungsschlüssels in der Datei web.config. Standardmäßig ist es "SnTaskWeb".
Öffnen Sie den Registrierungseditor
regedit.exe
und navigieren Sie zuHKLM\SYSTEM\CurrentControlSet\Services\EventLog\SnTask
. Klicken Sie mit der rechten Maustaste auf SnTask, wählen SieNew Key
den SchlüsselSnTaskWeb
für die oben gezeigte Konfiguration aus und benennen Sie ihn . Klicken Sie dann mit der rechten Maustaste auf dasSnTaskWeb
Element und wählen SieNew Expandable String Value
. Der Name sollte seinEventMessageFile
und die Wertdaten sollten seinC:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll
.Schlüsselwörter: signalr, sensenet, regedit, Berechtigungen
quelle
Wenn Sie nur schnüffeln möchten, wenn auf dem lokalen Computer eine Quelle vorhanden ist, aber keine Berechtigung dazu erhalten, können Sie das folgende Beispiel (VB) verwenden.
Dies umgeht den Sicherheitsfehler. Sie können diese Funktion auch ändern, um den Protokollnamen für die Quelle zurückzugeben.
quelle