我正在尝试使用 Enterprise Library MSMQ Distributor 服务来获取放置在 MSMQ 队列中的日志消息,并通过 Logging 块的标准数据库部分将它们放置在数据库中。
但是,当我尝试启动 Distributor 服务时,出现以下异常:
Exception Type: System.Configuration.ConfigurationErrorsException
Message: Invalid TraceListenerData type in configuration 'listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database"'. (C:\Projects\LogTest\msmqDistributor\MsmqDistributor.exe.Config line 15)
有问题的行如下所示:
<listeners>
<add name="Database Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.Database.FormattedDatabaseTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database"
databaseInstanceName="LoggingDB" writeLogStoredProcName="WriteLog"
addCategoryStoredProcName="AddCategory" formatter="Text Formatter"
traceOutputOptions="DateTime, Timestamp" />
<!-- other listeners -->
</listeners>
我无法弄清楚侦听器定义有什么问题 - 似乎分发者找不到它,但据我所知,相关的 dll 在同一个文件夹中。对不同的应用程序运行相同的配置可以正常工作并将日志条目写入数据库,因此似乎它可能与服务权限有关,但我不知道我需要以哪种方式查找此权限。