web-dev-qa-db-fra.com

Obtenir une "erreur interne dans l'évaluateur d'expression" sur la fonction "Ajouter un observateur" lors d'une tentative de débogage du code de service WCF (MSVS 2013)

Il y a quelques jours, j'ai déplacé ma solution vers MSVS 2013. Cela fonctionne très bien sauf une chose: lorsque j'essaie de déboguer le code de mon service WCF, cela fonctionne, mais lorsque je souhaite surveiller l'état d'une variable, il indique: "Erreur interne dans l'expression évaluateur ". La fonction Ajouter une montre fonctionne normalement côté client, mais elle est cassée dans le code de service. J'essaie de déboguer mon propre service WCF qui s'exécute sur l'hôte local. Pourriez-vous m'aider, comment réparer cela?

enter image description here

Voici les informations MSVS: Microsoft Visual Studio Professional 2013 version 12.0.30110.00 Mise à jour 1 Système d'exploitation Microsoft .NET Framework version 4.5.51641: Windows 8.1

114
Ceridan

Il s’agit peut-être d’un bogue dans le nouveau moteur de débogage (géré) fourni avec Visual Studio 2013. Essayez d’activer le mode de compatibilité géré (qui le transforme effectivement en moteur de débogage antérieur à 2013), situé sous Outils - Options - Débogage :

Si cela résout le problème, je suggérerais alors d'essayer de le reproduire avec un petit projet, puis de le signaler sur Connect , afin qu'il puisse être corrigé.

@ bjhuffine indique ci-dessous qu'il existe d'autres moyens d'activer le mode de compatibilité, sans le désactiver globalement (par exemple, par projet). Plus d'informations ici: http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013.aspx

228
Igal Tabachnik

Selon la question "Erreur interne dans l'évaluateur d'expression" "Utiliser le mode de compatibilité gérée" arrête "Éditer & Continuer". Essayez de cocher l'option "Utiliser les anciens C # et VB expressions d'évaluation") sous Outils - Options - Débogage .

13
Michael Freidgeim

J'ai essayé réponse d'Igal , et cela n'a pas fonctionné pour moi, mais j'ai trouvé une solution qui fonctionnait pour moi. J'ai effacé la montre et recommencé à ajouter des objets. J'ai remarqué que si j'essayais d'ajouter un élément qui n'était pas dans la sous-fonction ou la fonction en cours, une erreur interne se produisait.

J'ai résolu le problème en ajoutant d'autres éléments à l'intérieur de leurs sous-programmes ou fonctions et il n'y a plus d'erreur.

2
KomArko

La réponse de Michael Freidgeim m'a aidée à déboguer mon problème. Mais je veux ajouter des détails supplémentaires à la cause de mon problème. Seulement légèrement lié à la question du demandeur, mais son erreur est extrêmement trompeuse.

Nous utilisions un contrôle Telerik RadGrid avec GridDateTimeColumn. La propriété MinDate de ces grilles est définie par défaut sur 01/01/1980, donc si vous liez une date à cette colonne inférieure à celle-ci, vous verrez cette erreur. Ce qui est étrange, c’est que la liaison et l’affichage d’origine ne posaient pas de problème, c’est uniquement lors du passage à une autre page que l’erreur a été générée.

0
ascriven