Une erreur d'activation s'est produite lors de la tentative d'obtention de l'instance de type LogWriter, clé ""?
J'ai asp.net site web. J'ai ajouté la référence de Microsoft.Practices.EnterpriseLibrary.Logging.dll
sur le site.
dans le web.cofig fichier, j'ai défini comme ci-dessous.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<loggingConfiguration name="Logging Application Block" tracingEnabled="true"
defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
<listeners>
<add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging"
fileName="C:\Temp\RollingFlatFile.log" footer="----------------------------------------"
formatter="Text Formatter" header="----------------------------------------"
rollFileExistsBehavior="Increment" rollInterval="None" rollSizeKB="20"
timeStampPattern="yyyy-MM-dd" maxArchivedFiles="3" traceOutputOptions="None"
filter="All" />
</listeners>
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging"
template="Timestamp: {timestamp(local)}{tab}Message: {message}{tab}Category: {category}{tab}Priority: {priority}{tab}EventId: {eventid}{tab}ActivityId: {property(ActivityId)}{tab}Severity: {severity}{tab}Title:{title}{tab}"
name="Brief Format Text" />
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging"
template="Timestamp: {timestamp}{tab}Message: {message}{tab}Category: {category}{tab}Priority: {priority}{tab}EventId: {eventid}{tab}Severity: {severity}{tab}Title: {title}{tab}Activity ID: {property(ActivityId)}{tab}Machine: {localMachine}{tab}App Domain: {localAppDomain}{tab}ProcessId: {localProcessId}{tab}Process Name: {localProcessName}{tab}Thread Name: {threadName}{tab}Win32 ThreadId:{win32ThreadId}{tab}Extended Properties: {dictionary({key} - {value}{tab})}"
name="Text Formatter" />
</formatters>
<logFilters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.PriorityFilter, Microsoft.Practices.EnterpriseLibrary.Logging"
minimumPriority="2" maximumPriority="99" name="Priority Filter" />
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.LogEnabledFilter, Microsoft.Practices.EnterpriseLibrary.Logging"
enabled="true" name="LogEnabled Filter" />
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.CategoryFilter, Microsoft.Practices.EnterpriseLibrary.Logging"
categoryFilterMode="AllowAllExceptDenied" name="Category Filter">
<categoryFilters>
<add name="BlockedByFilter" />
</categoryFilters>
</add>
</logFilters>
<categorySources>
<add switchValue="All" name="Important">
<listeners>
<add name="Formatted EventLog TraceListener" />
<add name="Rolling Flat File Trace Listener" />
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events" />
<notProcessed switchValue="All" name="Unprocessed Category">
<listeners>
<add name="UnprocessedFlatFile" />
</listeners>
</notProcessed>
<errors switchValue="All" name="Logging Errors & Warnings">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</errors>
</specialSources>
</loggingConfiguration>
</configuration>
Quand je lance l'exception de code passe-bas de la place.
defaultWriter = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();
//Activation error occured while trying to get instance of type LogWriter, key ""
Comment résoudre ce problème?
source d'informationauteur James123
Vous devez vous connecter pour publier un commentaire.
Complète de votre config références trace les auditeurs qui ne sont pas définis. Ceci est à l'origine de l'Entreprise de la Bibliothèque d'exécution pour lancer une exception d'exécution lorsqu'il tente de résoudre ces références.
J'ai commenté le solde non utilisé des auditeurs (et changé la catégorie par défaut pour
Important
) et il est de travail:L'indice à l'intérieur de l'exception. À la fin de la
InnerException.Message
il dit:La config ci-dessus est d'application.config. Ensuite Le Programme.cs contient:
EDIT: en Vertu de EL 6.0 il n'y a plus d'une dépendance à l'Unité plus
Au moment de la dernière édition (AOÛT 2013) Unité 3 a été le produit actuel.
Unité 3.0
Quelques-uns des conseils ci-dessous autour de l'Application.l'éditeur de configuration pour EL est toujours utile.
Quelques changements dans le code pour el5 pour el6 sont également indiqués.
Voici ma tentative de clarifier. le el5.0 erreur
L'exemple d'erreur
L'Exécutif résumé:
L'unité ne peut pas voir les bibliothèques ou l'unité ne trouvez pas l'application.config entrées , l'application de config entrées sont incomplètes pour la bibliothèque utilisée, ou s'il existe des problèmes de ciblage.
Faites attention à tous ces points.
Enterprise Library 6 site de téléchargement de
Télécharger le fichier vsix
Microsoft.Les pratiques.EnterpriseLibrary.ConfigConsoleV6.vsix
vous l'utiliser pour modifier l'application.config correctement.
Toujours utiliser nuget pour installer les paquets, MAIS vous avez besoin de la ci-dessus télécharger pour modifier l'application.config correctement
Il y a un peu plus d'ENT les Bibliothèques pourraient vous intéresser.
http://nuget.org/packages?q=entlib
Utiliser la config de la console téléchargé c'est à dire le VSIX. clic droit sur l'application.config .
L'APPLICATION.Fichier de configuration doit avoir une section avec le ENtLibraries en cours d'utilisation.
Vous devez vous assurer de l'application.config de configuration web du projet en cours d'exécution a
Les entrées sont ajoutées lors de l'utilisation de la bibliothèque d'Entreprise de la console de configuration de l'enregistrement ou de la gestion des exceptions.
Cela a fonctionné pour moi, avec EL 6.0 et non pas à l'aide de l'Unité
Init Enregistreur de données de web.fichier de configuration Global.asax -> Application_Start
Utilisation enregistreur sur MVC contrôleur