Asp.net mvc 3 使用Elmah、Log4Net和运行状况监视进行MVC日志记录

Asp.net mvc 3 使用Elmah、Log4Net和运行状况监视进行MVC日志记录,asp.net-mvc-3,log4net,asp.net-mvc-4,elmah,health-monitoring,Asp.net Mvc 3,Log4net,Asp.net Mvc 4,Elmah,Health Monitoring,我最近在Darren的博客()上找到了一篇关于登录MVC的6篇系列文章 这是一篇非常好的文章,介绍了如何使用Elmah、Log4Net、NLog和运行状况监视,以及如何使用单个UI来查看和管理条目 这篇文章写在2010年,但我已经在我正在开发的MVC4应用程序上成功地实现了它。日志记录工作得很好,但我在尝试查看组合UI中的条目时遇到了一个问题 我得到以下错误: “System.Data.SqlClient.SqlException:无法解决不同操作的排序规则冲突。” 如果我注释掉Log4Net的

我最近在Darren的博客()上找到了一篇关于登录MVC的6篇系列文章

这是一篇非常好的文章,介绍了如何使用Elmah、Log4Net、NLog和运行状况监视,以及如何使用单个UI来查看和管理条目

这篇文章写在2010年,但我已经在我正在开发的MVC4应用程序上成功地实现了它。日志记录工作得很好,但我在尝试查看组合UI中的条目时遇到了一个问题

我得到以下错误:

“System.Data.SqlClient.SqlException:无法解决不同操作的排序规则冲突。”

如果我注释掉Log4Net的配置条目,我就不会再收到错误,我可以看到Elmah和Health Monitoring的条目。此错误仅在尝试合并Log4Net表中的条目时发生

有人知道如何解决这个问题吗

提前感谢您的帮助

更新: 以下是出现问题的代码(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
我也有同样的问题(同一个博客系列) 如果您尚未找到解决方案,以下是帮助我的方法:


干杯

可能是联盟中的数据类型不匹配…可能是检查log4net表中的不同之处?更新:似乎是运行状况监视和log4net之间的问题。我可以查看Elmah&Health Monitoring或Elmah&Log4Net,但我不能全部查看,因为这会导致错误。尝试Log4Net&运行状况监视会产生相同的错误。奇怪……谢谢阿诺,我也找到了那篇文章。不幸的是,这并不能解决问题。所有文本类型列的排序规则都是相同的。实际上,我遗漏了一个表。添加的表“aspnet\u WebEvent\u ErrorCodes”的名称列和级别列设置为不同的排序规则。一旦我使用了文章中的alter脚本,我的问题就自行解决了。再次感谢。