135 votes

La source n'a pas été trouvée, mais certains ou tous les journaux des événements n'ont pas pu être recherchés.

Je reçois l'exception suivante. J'ai donné un contrôle total au compte Asp.net sur les journaux d'événements dans l'éditeur de Registre.

[SecurityException: La source n'a pas été trouvée, mais certains ou tous les journaux d'événements n'ont pas pu être recherchés. Journaux inaccessibles: Security.]

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

Je suppose que cela est dû à un problème de configuration sur le serveur?

0 votes

1 votes

J'ai posté ma réponse et le modérateur l'a supprimée. Veuillez vous assurer d'exécuter votre service en tant que système local mais pas en tant qu'autre, car le système local peut seulement créer des journaux d'événements et des sources. J'exécutais mon service en tant que service réseau et j'ai eu cette exception. Plus tard, j'ai arrêté le service et l'ai redémarré en tant que système local et cela a fonctionné correctement, puis j'ai arrêté et redémarré mon service en tant que service réseau et cela a fonctionné correctement.

0 votes

Vous devez temporairement désactiver l'impersonation dans le code, pour plus de détails Vérifiez ce La source n'a pas été trouvée, mais certains journaux d'événements ou tous ne peuvent pas être recherchés. Journaux inaccessibles : Sécurité.

111voto

Nicole Calinoiu Points 14034

EventLog.SourceExists énumère les sous-clés de HKLM\SYSTEM\CurrentControlSet\services\eventlog pour voir si elle contient une sous-clé avec le nom spécifié. Si le compte utilisateur sous lequel le code s'exécute n'a pas d'accès en lecture à une sous-clé qu'il tente d'accéder (dans votre cas, la sous-clé Sécurité) avant de trouver la source cible, vous verrez une exception comme celle que vous avez décrite.

L'approche habituelle pour gérer de tels problèmes est de enregistrer les sources de journaux d'événements au moment de l'installation (sous un compte administrateur), puis supposer qu'ils existent au moment de l'exécution, ce qui permet de traiter toute exception résultante comme inattendue si une source de journal d'événements cible n'existe pas réellement au moment de l'exécution.

27 votes

Sur Windows 8, il semble que même lorsque l'UAC est désactivé ET que l'utilisateur est administrateur, il est toujours nécessaire d'exécuter VS en tant qu'administrateur. C'est la solution dans mon cas

3 votes

Pour moi, il a suffi d'exécuter l'application en tant qu'administrateur seulement la première fois. Après cela, la source d'événement a été créée et l'application a fonctionné correctement.

2 votes

Voici un exemple de la façon dont Windows décourage l'utilisation des outils intégrés dans le système d'exploitation

73voto

40-Love Points 1333

J'ai eu la même exception. Dans mon cas, j'ai dû exécuter l'invite de commandes avec des droits d'administrateur.

À partir du menu Démarrer, faites un clic droit sur l'invite de commandes, puis sélectionnez "Exécuter en tant qu'administrateur".

2 votes

Ma situation est d'exécuter Visual Studio 2015 en tant qu'administrateur. (en train de faire un projet API Web.)

12voto

Raza Points 108

Pour moi, cette erreur était due à l'invite de commande, qui ne s'exécutait pas avec des privilèges d'administrateur. Vous devez faire un clic droit sur l'invite de commande et choisir "Exécuter en tant qu'administrateur".

Vous avez besoin du rôle administrateur pour installer ou désinstaller un service.

0 votes

Je tâtonnais pendant environ 2 heures, merci mec!

10voto

J Condren Points 31

Lancez la ligne de commande du développeur "En tant qu'administrateur". Ce compte a un accès complet au journal de sécurité

8voto

Mike Hart Points 91

Ça n'a pas fonctionné pour moi.

J'ai créé une nouvelle clé et une nouvelle valeur de chaîne et j'ai réussi à le faire fonctionner

Clé= HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\\
Valeur de chaîne EventMessageFile=C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll

0 votes

J'ai fait la même chose. J'ai simplement créé une nouvelle clé avec le nom de la source que j'utilise dans mon application et ça a fonctionné.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X