最近、Darrenのブログ(http://dotnetdarren.wordpress.com/)でMVCへのログインに関する6部構成の記事シリーズを見つけました。
これは、Elmah、Log4Net、NLog、およびHealth Monitoringの使用方法と、単一のUIを使用してエントリを表示および管理する方法に関する非常に優れた記事です。
この記事は2010年に書き戻されましたが、開発中のMVC4アプリケーションに正常に実装できました。ロギングは完全に機能していますが、結合されたUIでエントリを表示しようとすると問題が発生します。
次のエラーが発生します。
System.Data.SqlClient.SqlException:DISTINCT操作の照合の競合を解決できません。」
Log4Netの構成エントリをコメントアウトすると、エラーは発生しなくなり、ElmahとHealthMonitoringのエントリを確認できます。このエラーは、Log4NetテーブルのエントリでUNIONを実行しようとした場合にのみ発生します。
誰かがこれを解決する方法について何かアイデアがありますか?
助けてくれてありがとう。
更新: 問題が発生するコード(VB.NET)は次のとおりです。
For Each providerName As String In logProviders.Keys
Dim logList As IQueryable(Of LogEventModel) = GetProvider(providerName).GetByDateRangeAndType(pageIndex, pageSize, startDate, endDate, logLevel)
' Error occurs on this line below, only when Log4Net is in use.
list = If((list Is Nothing), logList, list.Union(logList))
Next