J'obtiens l'exception suivante. J'ai donné le contrôle total au compte Asp.net sur Eventlogs dans l'édition du 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: sécurité.]
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?
Réponses:
EventLog.SourceExists
énumère à travers les sous-clés deHKLM\SYSTEM\CurrentControlSet\services\eventlog
pour voir si elle contient une sous-clé avec le nom spécifié. Si le compte d'utilisateur sous lequel le code s'exécute n'a pas d'accès en lecture à une sous-clé à laquelle il tente d'accéder (dans votre cas, laSecurity
sous - clé) avant de trouver la source cible, vous verrez une exception comme celle que vous avez décrite.L'approche habituelle pour gérer ces problèmes consiste à enregistrer les sources du journal des événements au moment de l'installation (sous un compte d'administrateur), puis à supposer qu'elles existent au moment de l'exécution, ce qui permet à toute exception résultante d'être traitée comme inattendue si une source de journal des événements cible n'existe pas réellement lors de l'exécution.
la source
Eu la même exception. Dans mon cas, j'ai dû exécuter l'invite de commande avec les droits d'administrateur.
Dans le menu Démarrer, faites un clic droit sur l'invite de commandes, sélectionnez "Exécuter en tant qu'administrateur".
la source
Pour moi, cette erreur était due à l'invite de commande, qui ne fonctionnait pas sous les privilèges d'administrateur. Vous devez faire un clic droit sur l'invite de commande et dire « Exécuter en tant qu'administrateur ».
Vous avez besoin du rôle d'administrateur pour installer ou désinstaller un service.
la source
Lancez la ligne de commande Developer "En tant qu'administrateur". Ce compte a un accès complet au journal de sécurité
la source
Cela n'a pas fonctionné pour moi.
J'ai créé une nouvelle valeur de clé et de chaîne et j'ai réussi à la faire fonctionner
la source
Pour moi, je viens de travailler iisreset (exécutez cmd en tant qu'administrateur -> iisreset). Quelqu'un pourrait peut-être essayer.
la source
Une nouvelle source d'événements doit avoir un nom unique dans tous les journaux, y compris la sécurité (qui nécessite le privilège d'administrateur lors de sa lecture).
Votre application aura donc besoin des privilèges d'administrateur pour créer une source. Mais c'est probablement exagéré.
J'ai écrit ce script PowerShell pour créer la source de l'événement à volonté. Enregistrez-le sous
*.ps1
et exécutez-le avec n'importe quel privilège et il s'élèvera.la source
J'ai récemment rencontré l'erreur et aucune des solutions n'a fonctionné pour moi. Ce qui a résolu l'erreur pour moi a été d'ajouter l'utilisateur du pool d'applications au groupe Utilisateurs avec pouvoir dans la gestion de l'ordinateur. Je n'ai pas pu utiliser le groupe Administrateur en raison d'une politique d'entreprise.
la source
Si vous effectuez une nouvelle installation du site Web SenseNet TaskManagement sur IIS (à partir du code source, et non de WebPI), vous recevrez ce message, généralement lié à la communication SignalR. Comme le souligne @ nicole-caliniou, cela est dû à une recherche par clé dans le registre qui échoue.
Pour résoudre ce problème pour SenseNet TaskManagement v1.1.0, recherchez d'abord le nom de la clé de registre dans le fichier web.config. Par défaut, il s'agit de "SnTaskWeb".
Ouvrez l'éditeur de registre
regedit.exe
et accédez àHKLM\SYSTEM\CurrentControlSet\Services\EventLog\SnTask
. Cliquez avec le bouton droit de la souris sur SnTask et sélectionnezNew Key
et nommez la cléSnTaskWeb
pour la configuration ci-dessus. Cliquez ensuite avec le bouton droit sur l'SnTaskWeb
élément et sélectionnezNew Expandable String Value
. Le nom doit êtreEventMessageFile
et les données de valeur doivent êtreC:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll
.Mots-clés: signalr, sensenet, regedit, autorisations
la source
Si vous souhaitez simplement détecter si une source existe sur la machine locale mais que vous n'avez pas la possibilité d'obtenir l'autorisation de le faire, vous pouvez la rechercher dans l'exemple suivant (VB).
Cela contourne l'erreur de sécurité. Vous pouvez également modifier cette fonction pour renvoyer le LogName pour la source.
la source