web-dev-qa-db-fra.com

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: Sécurité

Je reçois une erreur:

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: Sécurité

Lorsque j'exécute le code ci-dessous pour capturer les erreurs sur le serveur Windows 2K12 R2 IIS 8.5

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

J'ai donné un accès complet à HKLM\SYSTEM\CurrentControlSet\services\eventlog mais cela ne fonctionne toujours pas. Que dois-je faire pour le réparer?

58
user1480864

Voir création d'une clé de registre .

Ce problème peut survenir non seulement en raison d'autorisations, mais également en raison d'une clé source d'événement manquante car elle n'a pas été enregistrée correctement (vous devez disposer des privilèges d'administrateur pour le faire - si vous ouvrez Visual Studio normalement et exécutez le programme normalement, il l'a remporté ' t être suffisant). Assurez-vous que votre source d’événements "MyApp" est bien enregistrée, c’est-à-dire qu’elle apparaît dans le registre sous HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application.

De MSDN EventLog.CreateEventSource () :

Pour créer une source d'événements dans Windows Vista et versions ultérieures ou Windows Server 2003, vous devez disposer de privilèges d'administrateur.

Vous devez donc exécuter le code d'enregistrement de la source d'événements en tant qu'administrateur (et vérifier également si la source existe déjà - voir l'exemple MSDN ci-dessus) ou vous pouvez ajouter manuellement la clé au registre:

  1. créer une clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp;
  2. à l'intérieur, créez une valeur de chaîne EventMessageFile et définissez sa valeur sur ex. C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll
61
w128

J'ai eu cette erreur lors de l'exécution de Visual Studio. Par exécutant Visual Studio en tant qu'administrateur , l'application a pu accéder aux journaux de sécurité car elle disposait alors d'autorisations suffisantes (évitant ainsi l'erreur).

29
SharpC

Je sais, je suis un peu en retard à la fête ... Ce qui arrive souvent, vous utilisez simplement les paramètres par défaut de votre pool d'applications dans IIS. Dans IIS Utilitaire d'administration, accédez à app pools->select pool-->advanced settings->Process Model/Identity et sélectionnez une identité d'utilisateur disposant des autorisations appropriées. Par défaut, il est défini sur ApplicationPoolIdentity. Si vous êtes développeur, vous êtes probablement administrateur sur votre ordinateur. Vous pouvez donc sélectionner votre compte pour exécuter le pool d'applications. Sur les serveurs de déploiement, laissez les administrateurs s’occuper de cela.

6
T.S.

Chaque fois que vous démarrez Visual Studio, exécutez-le en tant qu'administrateur. Ça marche pour moi.

3
Divya

essayez de donner également un identifiant AppPool ou des services réseau selon l’accès applicable également HKLM\SYSTEM\CurrentControlSet\services\eventlog\security. Je recevais la même erreur .. cela a fonctionné pour moi. Voir l'erreur indique également que les journaux inaccessibles sont des journaux de sécurité.

J'ai également donné la permission dans eventlog\application.

J'ai donné un accès complet partout.

2
Aditi

Localement, je lance Visual Studio avec les droits d’administrateur et l’erreur a disparu.

Si vous obtenez cette erreur dans le planificateur de tâches, vous devez cocher l'option exécuter avec des privilèges élevés.

1

Cela pourrait aussi être dû au fait que le fichier .dll requis ne sera peut-être pas trouvé. Le fichier ne se trouve pas dans le dossier ou est renommé. J'ai fait face au même problème et j'ai trouvé que le fichier .dll manquait dans mon dossier bin.

1
sandeep kumar

Utilisez NetworkService comme valeur d'identité dans les paramètres avancés du pool d'applications lors du débogage dans Visual Studio. ApplicationPoolIdentity fonctionne si vous ouvrez le site directement à partir du navigateur (ou accédez au répertoire virtuel dans IIS et utilisez l'option de navigation à droite).

0
Pablishe

J'ai récemment commencé à recevoir cette erreur à l'intérieur de mon journal interne d'échecs NLog, avec Visual Studio 2013. La solution utilise NLog v2.0.0 depuis plusieurs années. Au cours du dernier mois, notre journal principal a cessé de fonctionner. Pour résoudre ce problème, j'ai mis à jour NLog avec la dernière version (v3.1.0) via Nuget. L'exception de sécurité a maintenant disparu et TOUS les messages du journal réapparaissent.

De plus, j'ai par la suite trouvé une autre exception de sécurité et j'ai pu y remédier en suivant les instructions de cette publier dans un autre fil .

0
cat5dev