Enterprise Library MSMQ Distributorサービスを使用して、MSMQキューに配置されているログメッセージを取得し、Loggingブロックの標準のデータベース部分を介してデータベースに配置しようとしています。
ただし、ディストリビューターサービスを開始しようとすると、次の例外が発生します。
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は同じフォルダーにあります。別のアプリケーションに対して同じ構成を実行すると正しく機能し、ログエントリがデータベースに書き込まれるため、サービスのアクセス許可に関係しているように見えますが、どちらの方法でこれを探す必要があるのかわかりません。