6

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は同じフォルダーにあります。別のアプリケーションに対して同じ構成を実行すると正しく機能し、ログエントリがデータベースに書き込まれるため、サービスのアクセス許可に関係しているように見えますが、どちらの方法でこれを探す必要があるのか​​わかりません。

4

2 に答える 2

4

この問題は、間違ったバージョンの.dllを使用できるようにすることで発生しました。エンタープライズライブラリのソースバージョンとバイナリバージョンの両方がある場合は、構成ファイルの作成に使用するバージョンのEntLibConfig.exeと同じライブラリを使用していることを確認する必要があります。したがって、バイナリディストリビューションのEntLibConfigファイルを使用している場合は、バイナリディストリビューションのdllを、それらによって構成されているアプリケーションで使用できるようにする必要があります。そうしないと、すべての参照が絡み合い、このタイプのエラーが発生します。

于 2013-01-29T14:53:58.323 に答える
1

これを回答済みとしてマークしたことは知っていますが、この問題が発生したため、EntLibConfigと一致する別のバージョンのEntLibに戻さなくても問題を解決できます。私の場合、EntLibバージョン5.0.505.0を使用していましたが、構成ファイルにあるように、EntLibConfig.exeにはEntLibバージョン5.0.414.0が必要でした。設定ファイルでversion=5.0.414.0が出現するたびに、適切なバージョンになります。これで機能します。これは、loggingConfigurationのConfigセクションと、Listenerおよびformatterセクションにもなります。

欠点は、古いバージョンを使用しようとするため、EntLibConfig.exeで構成ファイルを開くことができなくなることです。

entlibconfigエラー

于 2015-02-25T22:40:42.563 に答える