Ведение журнала MVC с использованием Elmah, Log4Net и Health Monitoring

Недавно я нашел серию из 6 статей о входе в MVC в блоге Даррена (http://dotnetdarren.wordpress.com/< /а>).

Это очень хорошая статья о том, как использовать Elmah, Log4Net, NLog и Health Monitoring И использовать единый пользовательский интерфейс для просмотра и управления записями.

Статья была написана еще в 2010 году, но я успешно реализовал ее в приложении MVC 4, которое разрабатываю. Ведение журнала работает отлично, но у меня есть проблема при попытке просмотреть записи в комбинированном пользовательском интерфейсе.

Я получаю следующую ошибку:

"System.Data.SqlClient.SqlException: не удается разрешить конфликт сопоставления для операции DISTINCT."

Если я закомментирую запись конфигурации для 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

person Ed DeGagne    schedule 17.05.2012    source источник
comment
вероятно, несоответствие типов данных в Union... может быть, проверить, что отличается в таблице log4net?   -  person dotjoe    schedule 17.05.2012
comment
Обновление: похоже, проблема между Health Monitoring и Log4Net. Я могу просмотреть Elmah & Health Monitoring ИЛИ Elmah & Log4Net, но я не могу сделать все 3, так как это приводит к ошибке. Попытка использовать только Log4Net & Health Monitoring приводит к той же ошибке. Странный....   -  person Ed DeGagne    schedule 18.05.2012


Ответы (1)


У меня была та же проблема (с той же серией блогов). Если вы еще не нашли решение, вот что мне помогло:

Не удается разрешить конфликт сопоставления между SQL_Latin1_General_CP1_CI_AS и Latin1_General_CI_AS в операции «равно»

Ваше здоровье

person Arnaud    schedule 31.05.2012
comment
Спасибо, Арно, я тоже нашел эту статью. К сожалению, это не решает. Сопоставление одинаково для всех столбцов текстового типа. - person Ed DeGagne; 01.06.2012
comment
На самом деле, я пропустил стол. В добавленной таблице aspnet_WebEvent_ErrorCodes для столбцов Name и Level заданы другие параметры сортировки. Как только я использовал скрипт alter из статьи, моя проблема решилась сама собой. Еще раз спасибо. - person Ed DeGagne; 05.06.2012