【发布时间】:2012-05-25 09:30:51
【问题描述】:
我最近在 Darren 的博客 (http://dotnetdarren.wordpress.com/) 上找到了关于登录 MVC 的 6 部分系列文章。
这是一篇非常好的文章,介绍了如何使用 Elmah、Log4Net、NLog 和健康监控以及使用单个 UI 来查看和管理条目。
这篇文章写于 2010 年,但我已经在我正在开发的 MVC 4 应用程序上成功实现了它。日志记录运行良好,但在尝试查看组合 UI 中的条目时确实遇到了问题。
我收到以下错误:
“System.Data.SqlClient.SqlException:无法解决 DISTINCT 操作的排序规则冲突。”
如果我注释掉 Log4Net 的配置条目,我不会再收到错误,并且我能够看到 Elmah 和健康监控的条目。此错误仅在尝试对 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
【问题讨论】:
-
可能是 Union 中的数据类型不匹配...也许检查一下 log4net 表中有什么不同?
-
更新:似乎是 Health Monitoring 和 Log4Net 之间的问题。我可以查看 Elmah 和健康监控或 Elmah 和 Log4Net,但我不能全部执行 3 项,因为它会导致错误。仅尝试 Log4Net & Health Monitoring 会产生相同的错误。奇怪....
标签: asp.net-mvc-3 log4net asp.net-mvc-4 elmah health-monitoring