我的配置中有以下内容:
<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。我会做错什么?(我甚至把它们放进了参考文件夹。
编辑:
我已经包含了以下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;
还是没有运气!啊!
最佳答案
您看到该消息是因为Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll程序集未部署到输出文件夹(bin或bin\debug release)。之所以发生这种情况,是因为该程序集仅在配置visual studio中被引用,而visualstudio认为它不是必需的。生成后命令可以部署程序集。