2011-02-16 6 views
3

Je me connecte au journal des événements en utilisant Ent Lib 5. Lorsque je lance l'application sur mon ordinateur Windows 7, tout fonctionne. Mais quand je le déploie sur un Windows Server 2008, il s'arrête juste de se connecter. Il n'écrit rien dans le journal des événements. Sur les deux machines Ent Lib 5 est installé.La bibliothèque d'entreprise ne se connecte pas

Alors, qu'en pensez-vous? Quel peut être le problème?

Répondre

7

Il s'agit d'une situation courante lors de la connexion au journal des événements Windows. Cela est probablement dû au fait que la source d'événement n'est pas enregistrée sur votre Windows Server 2008. Lorsque vous l'exécutez sur votre machine dev, vous (comme la plupart des développeurs) avez probablement des privilèges admin et le framework .NET crée automatiquement des sources d'événements vous les utilisez. Toute application sans privilèges d'administration ne peut pas créer de source d'événement et, par conséquent, la consignation échoue. L'application continue à fonctionner car la philosophie du bloc de journalisation est de ne pas être gênant, mais rien n'est consigné. Lors du déploiement de votre application, vous devez inclure une classe d'installation pour créer vos sources d'événements. Pour le développement, une solution rapide consiste à utiliser Windows PowerShell. Exécutez un processus PowerShell élevé et utilisez cette commande:

[System.Diagnostics.EventLog]::CreateEventSource(sourceName, logName) 

pour créer votre source d'événement pour le journal donné.

Vous pouvez également exécuter InstallUtil sur des assemblys EntLib. InstallServices.bat est fourni avec EntLib qui le fera pour vous.

Voir plus dans ce Codeplex discussion.

+1

J'ai créé un script PowerShell pour faire exactement cela. - Vérifiez qu'ils s'exécutent en tant que privilèges élevés - Avertir l'utilisateur s'ils ne le sont pas - Vérifier si le journal des événements existe - Créer le journal des événements s'il ne l'est pas - Afficher un message à l'utilisateur en tant que vers le résultat https://gist.github.com/3668859: RegisterEventLog.ps1 – Dan

0

Vous pouvez également ajouter votre source d'événement manuellement avec regedit.

Voir ceci MSDN article.