EnterpriseLibrary记录到数据库不起作用

时间:2014-04-07 06:45:26

标签: c# database logging exception-handling enterprise-library

我的配置中有以下内容:

<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;

仍然没有运气!!

1 个答案:

答案 0 :(得分:1)

您正在看到该消息,因为Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll程序集未部署到输出文件夹(bin或bin \ debug | release)。发生这种情况是因为组件仅在配置中引用,Visual Studio并不认为它是必需的。 post build命令可以部署程序集。