最近、MVC 4 アプリケーションに SqlServer シルクを使用して Microsoft.Practices.EnterpriseLibrary.SemanticLogging (v6) を追加しました。
var sqlListener = SqlDatabaseLog.CreateListener("SampleEventLogger",strConnection);
sqlListener.EnableEvents(BasicLogger.Log, EventLevel.LogAlways);
これは私のコントローラーのコードです
BasicLogger.Log.Critical("ERROR CRITICAL");
それはうまくいきます!
...そして今、障害:) 私のMVCアプリケーションでは、DIにUnityを使用し、コンストラクターILoggerインターフェイスに注入します。Unityコンテナに登録したのと同じ参照を使用する必要があるため(そうでなければ機能しません)、RegisteredTypeを使用することが解決策になると考えました。
var myRegistereType = container.Resolve<ILogger>();
sqlListener.EnableEvents(myRegistereType, EventLevel.LogAlways);
しかし、私はエラーを受け取りました
* Guid XXX XXX XXX XXX を持つ EventSource のインスタンスが既に存在します *
誰にもアイデアはありますか?ありがとう