Получите «Внутренняя ошибка в оценщике выражений» в функции «Добавить часы» при попытке отладки кода службы WCF (MSVS 2013)

114

Несколько дней назад я переместил свое решение на MSVS 2013. Оно работает нормально, за исключением одного: когда я пытаюсь отладить код своей службы WCF, оно работает, но когда я хочу посмотреть состояние любой переменной, он говорит: «Внутренняя ошибка в выражении оценщик». Функция добавления часов работает нормально на стороне клиента, но в служебном коде не работает. Я пытаюсь отладить свою собственную службу WCF, работающую на локальном хосте. Не могли бы вы мне помочь, как это исправить?

введите описание изображения здесь

Здесь информация MSVS: Microsoft Visual Studio Professional 2013, версия 12.0.30110.00, обновление 1 Microsoft .NET Framework, версия 4.5.51641 ОС: Windows 8.1

Ceridan
источник
В MSVS2012 он работает нормально (Microsoft Visual Studio Professional 2012, версия 11.0.61030.00, обновление 4, Microsoft .NET Framework, версия 4.5.51641)
Ceridan,
Я тоже вижу это сообщение и только что обновил его с 2012 до 2013.
Гэри
Мне нужно откатиться на 2012 год, в 2012 году он работает без ошибок, а 2013 год все еще у меня сломан
Ceridan
также
появляется такая

Ответы:

228

Это может быть ошибка в новом (управляемом) механизме отладки, который поставляется с Visual Studio 2013. Попробуйте включить управляемый режим совместимости (который фактически превращает его в механизм отладки до 2013 года), расположенный в меню Сервис - Параметры - Отладка :

Если это решит проблему, я бы предложил попытаться воспроизвести ее в небольшом проекте, а затем сообщить об этом в Connect , чтобы ее можно было исправить.

@bjhuffine ниже комментирует, что есть другие способы включить режим совместимости, не отключая его глобально (например, для каждого проекта). Дополнительная информация здесь: https://devblogs.microsoft.com/devops/switching-to-managed-compatibility-mode-in-visual-studio-2013/

Игал Табачник
источник
7
Это
устранило
1
Эта конфигурация решила проблему, но инструменты диагностики перестали работать.
Xepe
6
Это устранило мою проблему в Visual Studio 2015 RTM (и отключило новые инструменты диагностики), но у меня никогда не было этой проблемы в Visual Studio 2013. Мне придется протестировать это на моем домашнем компьютере и сравнить.
ahwm
2
Ты гений мой друг! Я также нашел это, которое не только добавляет дополнительные объяснения, но и показывает другие способы сделать это, если вы не хотите больших глобальных изменений молотка. blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/…
bjhuffine
11
Просто добавить; если эти параметры неактивны, вам нужно прекратить отладку;)
Radderz
13

Согласно вопросу «Внутренняя ошибка в оценщике выражений» «Использовать управляемый режим совместимости» останавливает «Редактировать и продолжить». Попробуйте установить флажок «Использовать устаревшие оценщики выражений C # и VB» в разделе « Инструменты» - «Параметры» - «Отладка» .

Майкл Фрейджейм
источник
2

Я попробовал ответить игала , и у меня это не сработало, но я нашел решение, которое сработало для меня. Я очистил часы и снова начал добавлять элементы. Я заметил, что если я попытался добавить элемент, которого не было внутри текущей подпрограммы или функции, произошла внутренняя ошибка.

Я решил проблему, добавив другие элементы из их подпрограмм или функций, и снова ошибок не было.

KomArko
источник
В моей ситуации ошибка возникает, даже если я добавил элементы наблюдения в область действия метода, но это решение с «Использовать управляемый режим совместимости» помогает мне.
Ceridan
0

Ответ Майкла Фрейджейма помог мне отладить мою проблему. Но я хочу добавить дополнительную информацию о причине моей проблемы. Немного связано с вопросом автора, но его ошибка вводит в заблуждение.

Мы использовали элемент управления Telerik RadGrid с GridDateTimeColumn's. Для свойства MinDate в этих сетках по умолчанию установлено значение 01.01.1980, поэтому, если вы привяжете к этому столбцу дату, которая меньше указанного значения, вы увидите эту ошибку. Странно то, что исходная привязка и отображение не вызывали проблемы, ошибка была выдана только при переходе на другую страницу.

ascriven
источник