C#: Windows Simple Service donne de l'Exception de Sécurité
Je suis en train de faire la procédure pas à pas dans le lien suivant:
http://msdn.microsoft.com/en-us/library/zt39148a%28VS.80%29.aspx
Je l'ai suivie exactement, ligne par ligne. J'ai installé le service avec succès, cependant, lorsque j'essaie de le lancer, le message d'erreur suivant s'affiche:
"Une exception non gérée ("le Système de.De sécurité.SecurityException') s'est produite dans MyNewService.Exe [5292].
J'ai vu que pour beaucoup de gens, il fonctionne, mais certaines personnes obtenir cette exception, bien que je ne pouvais pas trouver une réponse. Quelqu'un aurait-il une idée? Merci.
Quelle pièce d'identité utilisez-vous? Avez-vous accordé session en tant que service des droits de l'?
Avez-vous de la ligne de code où l'erreur se produit dans le Message d'Erreur? Qui va donner un indice quant à l'endroit où l'exception est survenue et laissez-nous vous donner des réponses précises.
L'exception est levée à: Système d'.Diagnostics.Le journal des événements.CreateEventSource("Masource", "MyNewLog"); Et l'exception est la suivante: "La source n'a pas été trouvé, mais certains ou tous les journaux des événements n'a pas pu être fouillés. Inaccessible journaux: la Sécurité."
Avez-vous de la ligne de code où l'erreur se produit dans le Message d'Erreur? Qui va donner un indice quant à l'endroit où l'exception est survenue et laissez-nous vous donner des réponses précises.
L'exception est levée à: Système d'.Diagnostics.Le journal des événements.CreateEventSource("Masource", "MyNewLog"); Et l'exception est la suivante: "La source n'a pas été trouvé, mais certains ou tous les journaux des événements n'a pas pu être fouillés. Inaccessible journaux: la Sécurité."
OriginalL'auteur sbenderli | 2009-09-03
Vous devez vous connecter pour publier un commentaire.
La Le journal des événements.SourceExists méthode est ce qui va être à l'origine de cette exception. La raison la plus courante étant, il tente d'accéder à TOUS les journaux d'événements (y compris le journal de Sécurité), qui est par défaut dans Vista, vous n'aurez pas d'autorisations. Une autre raison peut être, si la source que vous recherchez ne se trouve pas dans le journal des événements (que je trouve plutôt bizarre!).
Un travail autour de:
Une autre option est de simplement soulever vos autorisations, cependant, comme vous, où en suivant le tutoriel étape par étape, votre service sera exécuté sous le compte LocalService (qui encore une fois ne pas avoir les autorisations pour cette méthode). Ainsi, vous trouverez sur la documentation MSDN la solution est de vérifier si la source de l'événement existe dans le ServiceInstaller et si ça ne marche pas, créez-la source dans le programme d'installation.
Pas de problème, j'ai eu le même problème j'ai donc fait une petite enquête et il me semblait que c'était la cause. La raison pour laquelle il semble fonctionner dans le programme d'installation vous devez élever vos autorisations de sorte que vous allez avoir le bon priveledges à ce point.
un bon exemple de la façon dont le code de l'installateur blog.kappasolutions.ca/blog/post/2010/07/04/...
OriginalL'auteur James
Êtes-vous un administrateur local sur votre machine? Si oui, mettre la ligne de code suivante dans le haut du constructeur de votre service windows:
Lorsque le service commence à courir, il va frapper ce point d'arrêt, vous permettant de sauter dans Visual Studio. Vous pouvez déboguer puis à partir de là jusqu'à ce que vous découvrez lorsque l'exception se produit.
OriginalL'auteur Matt Davis
Allez obtenir une copie de Le Moniteur De Processus et de regarder ce qui se passe -, vous devriez obtenir la question en montrant que l'échec du résultat et vous pouvez étudier à partir de là...
edit: Pour préciser, c'est un outil gratuit de microsoft (sysinternals) et il fait ce qu'il dit sur l'étain 🙂
OriginalL'auteur chrisb
Juste une supposition: Est votre .exe fichier couché dans un dossier réseau? Ou est est marqué comme "téléchargé à partir d'Internet"? Car, dans ce cas, l' .NET Framework va attribuer des autorisations de moins pour elle que lorsqu'il était directement sur un lecteur local et non marqués comme téléchargés à partir d'internet.
autant que je sache, le programme d'installation ne vous empêche pas d'installer le service à un dossier sur un partage réseau. Peut-être que cela a changé en 2008, je n'ai pas de 2008 prof disponible ici, seulement 2008 express (ne peut pas construire des projets d'installation) et 2005 prof.
J'ai vérifié, et l'installation est local et non dans un dossier réseau.
dans ce cas, désolé, je n'ai pas d'autre idée 🙁
OriginalL'auteur mihi