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

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

enter image description here

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

Ответ 1

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

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

@bjhuffine ниже, есть другие способы включить режим совместимости, не отключая его глобально (например, для каждого проекта). Дополнительная информация здесь: http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013.aspx

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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