Uzyskaj „Błąd wewnętrzny w ewaluatorze wyrażeń” w funkcji „Dodaj zegarek” podczas próby debugowania kodu usługi WCF (MSVS 2013)


114

Kilka dni temu przeniosłem moje rozwiązanie do MSVS 2013. Działa dobrze, z wyjątkiem jednej rzeczy: kiedy próbuję debugować kod mojej usługi WCF, działa, ale gdy chcę obserwować stan dowolnej zmiennej, mówi: „Błąd wewnętrzny w wyrażeniu oceniający ”. Funkcja dodawania zegarka działa normalnie po stronie klienta, ale w kodzie serwisowym jest zepsuta. Próbuję debugować własną usługę WCF działającą na hoście lokalnym. Czy możesz mi pomóc, jak to naprawić?

wprowadź opis obrazu tutaj

Tutaj informacje MSVS: Microsoft Visual Studio Professional 2013 wersja 12.0.30110.00 Aktualizacja 1 Microsoft .NET Framework wersja 4.5.51641 System operacyjny: Windows 8.1


W MSVS2012 działa dobrze (Microsoft Visual Studio Professional 2012, wersja 11.0.61030.00, aktualizacja 4 Microsoft .NET Framework, wersja 4.5.51641)
Ceridan,

Widzę również tę wiadomość i właśnie zaktualizowałem dane z 2012 do 2013.
Gary

Muszę cofnąć się do 2012, w 2012 działa bez błędów, a 2013 nadal mi się
zepsuł

również otrzymuję ten sam błąd w VS 2013
zulucoda

Odpowiedzi:


228

Może to być błąd w nowym (zarządzanym) silniku debugowania, który jest dostarczany z programem Visual Studio 2013. Spróbuj włączyć zarządzany tryb zgodności (który skutecznie zmienia go w silnik debugowania sprzed 2013 r.), Znajdujący się w obszarze Narzędzia - Opcje - Debugowanie :

Jeśli to rozwiąże problem, sugerowałbym próbę odtworzenia go za pomocą małego projektu, a następnie zgłoszenie tego w Connect , aby można było to naprawić.

@bjhuffine komentuje poniżej, że istnieją inne sposoby włączenia trybu zgodności, bez globalnego wyłączania go (np. dla każdego projektu). Więcej informacji tutaj: https://devblogs.microsoft.com/devops/switching-to-managed-compatibility-mode-in-visual-studio-2013/


7
To rozwiązało mój problem z Visual Studio 2015 CTP 6.
Chris Schiffhauer

1
Ta konfiguracja rozwiązała problem, ale narzędzia diagnostyczne przestały działać.
Xepe

6
To rozwiązało mój sam problem w Visual Studio 2015 RTM (i wyłączyło nowe narzędzia diagnostyczne), ale nigdy nie miałem tego problemu w Visual Studio 2013. Muszę to przetestować na moim domowym komputerze i porównać.
ahwm

2
Jesteś geniuszem, przyjacielu! Znalazłem również to, co nie tylko dodaje dalsze wyjaśnienia, ale pokazuje inne sposoby zrobienia tego, jeśli nie chcesz wielkiej globalnej zmiany. blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/…
bjhuffine

11
Wystarczy dodać; jeśli te opcje są wyszarzone, musisz zatrzymać debugowanie;)
Radderz


2

Spróbowałem odpowiedzi Igala i to nie zadziałało, ale znalazłem rozwiązanie, które zadziałało. Wyczyściłem zegarek i zacząłem ponownie dodawać elementy. Zauważyłem, że jeśli próbowałem dodać element, który nie znajdował się w bieżącej podrzędnej lub funkcji, wystąpił błąd wewnętrzny.

Rozwiązałem problem, dodając inne elementy z wnętrza ich podrzędnych lub funkcji i ponownie nie było żadnych błędów.


W mojej sytuacji błąd występuje nawet wtedy, gdy dodałem elementy obserwacyjne w zakresie metody, ale pomaga mi to rozwiązanie z „Użyj trybu zarządzanej zgodności”.
Ceridan

0

Odpowiedź Michaela Freidgeima pomogła mi zdebugować mój problem. Ale chcę dodać dodatkowe szczegóły dotyczące przyczyny mojego problemu. Tylko w niewielkim stopniu związane z pytaniem pytającego, ale jego błąd jest wyjątkowo mylący.

Używaliśmy kontrolek RadGrid firmy Telerik z GridDateTimeColumn's. Właściwość MinDate w tych siatkach ma wartość domyślną 01/01/1980, więc jeśli przypiszesz datę do tej kolumny, która jest mniejsza niż data, zostanie wyświetlony ten błąd. Dziwne jest to, że oryginalne wiązanie i wyświetlanie nie powodowało problemu, tylko podczas przechodzenia do innej strony błąd był generowany.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.