Journalisation de la bibliothèque d'entreprise ne se connectant pas au journal des événements à partir d'ASP.NET
J'ai passé la journée à essayer de faire Ent Lib Journalisation de travail et de connecter quoi que ce soit dans la base de données ou le journal des événements. J'ai une application web et une application de console avec le même Ent Lib config, mais seulement l'application de la console est capable de se connecter dans le Journal des Événements. J'ai tout essayé avec les autorisations, mais je ne sais pas exactement ce que je fais — services qui devraient avoir ce. Il ne fonctionne pas!
Je lis des articles comme ça
http://imar.spaanjaars.com/275/logging-errors-to-the-event-log-in-aspnet-applications
et je veux essayer de donner le compte ASPNET ces autorisations. Je suis avec Windows 7 et je ne trouve pas de compte d'utilisateur ASPNET. Alors, où est-il?
C'est le fichier de configuration qui est automatiquement généré à partir de l'Ent utilitaire Lib et il ne fonctionne que sur les App.config, pas sur le web.config
<loggingConfiguration name="Logging Application Block" tracingEnabled="true"
defaultCategory="General" logWarningsWhenNoCategoriesMatch="true"
revertImpersonation="false">
<listeners>
<add source="Logger" formatter="Text Formatter" log="Application"
machineName="" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="Formatted EventLog TraceListener" />
</listeners>
<formatters>
<add template="Timestamp: {timestamp}
Message: {message}
Category: {category}
Priority: {priority}
EventId: {eventid}
Severity: {severity}
Title:{title}
Machine: {machine}
Application Domain: {appDomain}
Process Id: {processId}
Process Name: {processName}
Win32 Thread Id: {win32ThreadId}
Thread Name: {threadName}
Extended Properties: {dictionary({key} - {value}
)}"
type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="Text Formatter" />
</formatters>
<categorySources>
<add switchValue="All" name="General">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events" />
<notProcessed switchValue="All" name="Unprocessed Category" />
<errors switchValue="All" name="Logging Errors & Warnings">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</errors>
</specialSources>
</loggingConfiguration>
source d'informationauteur Costa
Vous devez vous connecter pour publier un commentaire.
Je crois que sous IIS7 (que je suis en supposant que vous utilisez), le pool d'applications s'exécutent selon le SERVICE RÉSEAU.
Vous pouvez essayer de SERVICE du RÉSEAU Complet de Contrôle de la clé de registre
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
.(Non Recommandé!)
Alternativement, vous pouvez accorder à tout le monde de
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
ouvrez un message, puis revenir à ce changement. Une fois que la clé est mis en place, alors vous n'aurez pas besoin d'autorisations pour écrire dans le registre.Ou vous pouvez configurer manuellement les clés de registre que vous avez besoin à l'avance pour éviter les problèmes d'autorisation:
Juste une mise à jour de cette réponse que, selon MSDN: "Pour créer une source de l'événement dans Windows Vista et version ultérieure) ou Windows Server 2003, vous devez disposer de privilèges d'administration".
J'utilise un script PowerShell pour créer la source appropriée ...
exécuter visual studio en tant qu'administrateur
ou d'utiliser ce code....