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

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

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

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


person Ceridan    schedule 18.02.2014    source источник
comment
В MSVS2012 он отлично работает (Microsoft Visual Studio Professional 2012, версия 11.0.61030.00, обновление 4, Microsoft .NET Framework, версия 4.5.51641)   -  person Ceridan    schedule 19.02.2014
comment
Я также вижу это сообщение и только что обновился с 2012 на 2013 год.   -  person Gary    schedule 21.03.2014
comment
Приходится откат на 2012 год, в 2012 работает без ошибок, а 2013 у меня еще битый   -  person Ceridan    schedule 22.03.2014
comment
также появляется такая же ошибка в VS 2013   -  person zulucoda    schedule 02.05.2014


Ответы (4)


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

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

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

person Igal Tabachnik    schedule 23.03.2014
comment
Это устранило мою проблему с Visual Studio 2015 CTP 6. - person Chris Schiffhauer; 20.03.2015
comment
Эта конфигурация решила проблему, но инструменты диагностики перестали работать. - person Xepe; 26.05.2015
comment
Это устранило мою проблему в Visual Studio 2015 RTM (и отключило новые инструменты диагностики), но у меня никогда не было этой проблемы в Visual Studio 2013. Мне придется протестировать это на моем домашнем компьютере и сравнить. - person ahwm; 22.07.2015
comment
Ты гений мой друг! Я также нашел это, которое не только добавляет дополнительные объяснения, но и показывает другие способы сделать это, если вы не хотите больших глобальных изменений молотка. blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/ - person bjhuffine; 19.08.2015
comment
Небольшое замечание о проблеме, которую я обнаружил и исправил при использовании этого решения - когда сообщество Visual Studio 2015 работает от имени администратора, этот параметр может быть неактивен. - person csharpforevermore; 16.10.2015
comment
Просто добавить; если эти параметры неактивны, вам необходимо остановить отладку;) - person Radderz; 14.12.2015
comment
Это также устранило ту же проблему с Visual Studio Enterprise 2015. Спасибо! - person MichaelMilom; 16.04.2016
comment
Та же проблема в 2015 sp1. Черт возьми, разве они не исправят эту чушь? - person ; 09.06.2016
comment
По-прежнему сталкиваюсь с той же проблемой. Ни один из обходных путей не работает - ну, на самом деле это не обходные пути, если они не работают;). - person atp9; 16.06.2016
comment
Есть ли недостатки в использовании режима управляемой совместимости? - person Ciaran Gallagher; 24.10.2016
comment
При выборе этой опции лямбда-выражения больше не будут работать в прямом окне. Он устранил указанную проблему, потому что я больше не могу запускать желаемый код, который приводит к указанной проблеме :-D - person xmashallax; 20.04.2017
comment
Когда я пытаюсь подключиться к процессу удаленного отладчика, у меня возникает другая проблема с vs 2015 (update3), когда он не позволяет мне подключаться через DCOM. Я сделал всевозможные открытия портов и настройку dcom, но все равно не повезло. - person JARRRRG; 04.05.2017

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

person Michael Freidgeim    schedule 24.03.2016

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

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

person KomArko    schedule 19.09.2015
comment
В моей ситуации ошибка возникает, даже если я добавил элементы наблюдения в область действия метода, но это решение с использованием режима управляемой совместимости мне помогает. - person Ceridan; 06.10.2015

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

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

person ascriven    schedule 13.12.2016