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ć?
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
Odpowiedzi:
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/
źródło
Zgodnie z pytaniem „Błąd wewnętrzny w ewaluatorze wyrażeń” „Użyj zarządzanego trybu zgodności” zatrzymuje „Edytuj i kontynuuj”. Spróbuj zaznaczyć opcję „Użyj starszych ewaluatorów wyrażeń C # i VB” w obszarze Narzędzia - Opcje - Debugowanie .
źródło
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.
źródło
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.
źródło