Obtener "Error interno en el evaluador de expresiones" en la función "Agregar reloj" al intentar depurar el código de servicio WCF (MSVS 2013)

114

Hace unos días moví mi solución a MSVS 2013. Funciona bien, excepto una cosa: cuando intento depurar el código de mi servicio WCF, funciona, pero cuando quiero ver el estado de cualquier variable, dice: "Error interno en la expresión evaluador ". Agregar función de reloj funciona normalmente en el lado del cliente, pero en el código de servicio está roto. Estoy intentando depurar mi propio servicio WCF que se ejecuta en el localhost. ¿Podrías ayudarme, cómo reparar esto?

ingrese la descripción de la imagen aquí

Aquí la información de MSVS: Microsoft Visual Studio Professional 2013 Versión 12.0.30110.00 Actualización 1 Microsoft .NET Framework Versión 4.5.51641 SO: Windows 8.1

Ceridan
fuente
En MSVS2012 funciona bien (Microsoft Visual Studio Professional 2012 Versión 11.0.61030.00 Actualización 4 Microsoft .NET Framework Versión 4.5.51641)
Ceridan
También veo ese mensaje y acabo de actualizar de 2012 a 2013.
Gary
Tengo que retroceder a 2012, en 2012 funciona sin errores y 2013 todavía está roto para mí
Ceridan
también obteniendo el mismo error en VS 2013
zulucoda

Respuestas:

228

Esto podría ser un error en el nuevo motor de depuración (administrado) que se incluye con Visual Studio 2013. Intente activar el modo de compatibilidad administrada (que efectivamente lo convierte en un motor de depuración anterior a 2013), ubicado en Herramientas - Opciones - Depuración :

Si esto resuelve el problema, le sugiero que intente reproducirlo con un proyecto pequeño y luego informarlo en Connect , para que pueda solucionarse.

@bjhuffine comenta a continuación que hay otras formas de habilitar el modo de compatibilidad, sin deshabilitarlo globalmente (por ejemplo, por proyecto). Más información aquí: https://devblogs.microsoft.com/devops/switching-to-managed-compatibility-mode-in-visual-studio-2013/

Igal Tabachnik
fuente
7
Esto solucionó mi mismo problema con Visual Studio 2015 CTP 6.
Chris Schiffhauer
1
Esta configuración resolvió el problema, pero las herramientas de diagnóstico dejaron de funcionar.
Xepe
6
Esto solucionó mi mismo problema en Visual Studio 2015 RTM (y deshabilitó las nuevas herramientas de diagnóstico) pero nunca tuve este problema en Visual Studio 2013. Tendré que probar esto en la computadora de mi hogar y comparar.
ahwm
2
¡Eres un genio amigo mío! También encontré esto que no solo agrega más explicación, sino que muestra otras formas de hacerlo si no desea el gran cambio global del martillo. blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/…
bjhuffine
11
Solo para agregar; si estas opciones están atenuadas, debe detener la depuración;)
Radderz
13

Según la pregunta "Error interno en el evaluador de expresiones", "Usar modo de compatibilidad administrada" detiene "Editar y continuar". Intente marcar la opción "Usar los evaluadores de expresiones de C # y VB heredados" en Herramientas - Opciones - Depuración .

Michael Freidgeim
fuente
2

Probé la respuesta de Igal , y no funcionó para mí, pero he encontrado una solución que trabajó para mí. Limpié el reloj y comencé a agregar elementos nuevamente. Me di cuenta de que si intentaba agregar un elemento que no estaba dentro de la función o sub actual, se produjo un error interno.

Resolví el problema agregando otros elementos desde dentro de sus subs o funciones y nuevamente no hubo errores.

KomArko
fuente
En mi situación, se produce un error incluso si agregué elementos de reloj dentro del alcance del método, pero esta solución con "Usar modo de compatibilidad administrada" me ayuda.
Ceridan
0

La respuesta de Michael Freidgeim me ayudó a depurar mi problema. Pero quiero agregar detalles adicionales a la causa de mi problema. Solo ligeramente relacionado con la pregunta del autor, pero su error es extremadamente engañoso.

Estábamos usando un Telerik controla RadGrid con GridDateTimeColumn's. La propiedad MinDate en estas cuadrículas tiene como valor predeterminado 01/01/1980, por lo que si vincula una fecha a esta columna que sea menor que esa, verá este error. Lo extraño es que el enlace y la visualización originales no causaron ningún problema, solo cuando se navegaba a otra página se lanzaba el error.

ascriven
fuente