Получите "Внутренняя ошибка в оценщике выражений" в функции "Добавить часы" при попытке отладки кода службы 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, поэтому, если вы привяжете дату к этому столбцу, которая меньше, чем вы увидите эту ошибку. Странно то, что первоначальная привязка и отображение не вызывали проблемы, только при переходе на другую страницу с ошибкой.