我的配置中有以下内容:
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="Exception Development">
<listeners>
<add name="Database Trace Listener"
formatter="Text Formatter"
traceoutputoptions="LogicalOperationStack, DateTime,
Timestamp, ProcessId, ThreadId, Callstack"
databaseinstancename="LoggingConnectionString"
writelogstoredprocname="WriteLog"
addcategorystoredprocname="AddCategory"
type="Microsoft.Practices.EnterpriseLibrary.Logging.Database.
FormattedDatabaseTraceListener,
Microsoft.Practices.EnterpriseLibrary.Logging.Database,
Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerdatatype="Microsoft.Practices.EnterpriseLibrary.Logging.
Database.Configuration.FormattedDatabaseTraceListenerData,
Microsoft.Practices.EnterpriseLibrary.Logging.Database,
Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
点击此行代码时:ExceptionPolicy.HandleException(exception, policyName);
抛出以下异常:
Missing TraceListenerData type in configuration 'listenerdatatype="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData,Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"'.
我不确定如何将异常记录到数据库中(我还没有完全创建 writeLogStoredProcName 或 addCategoryStoredProcName中的任何存储过程(我想是吗?我甚至不知道哪些列应该在那里)
我的所有EnterpriseLibrary dll都来自EntLib 5.0。我能做错什么? (我甚至将它们包含在References文件夹中。
编辑:
我已经包含了以下dll:
Microsoft.Practices.EnterpriseLibrary.Common;
Microsoft.Practices.EnterpriseLibrary.Data;
Microsoft.Practices.EnterpriseLibrary.Data.SqlCe;
Microsoft.Practices.EnterpriseLibrary.Logging;
Microsoft.Practices.EnterpriseLibrary.Logging.Database;
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging;
仍然没有运气!!
答案 0 :(得分:1)
您正在看到该消息,因为Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll程序集未部署到输出文件夹(bin或bin \ debug | release)。发生这种情况是因为组件仅在配置中引用,Visual Studio并不认为它是必需的。 post build命令可以部署程序集。