Dapatkan "Kesalahan internal dalam pengevaluasi ekspresi" pada fungsi "Tambahkan jam tangan" saat mencoba men-debug kode layanan WCF (MSVS 2013)

114

Beberapa hari yang lalu saya memindahkan solusi saya ke MSVS 2013. Ini berfungsi dengan baik kecuali satu hal: ketika saya mencoba men-debug kode layanan WCF saya, itu berfungsi, tetapi ketika saya ingin melihat status variabel apa pun, ia mengatakan: "Kesalahan internal dalam ekspresi penilai". Tambahkan fungsi jam tangan berfungsi normal di sisi klien, tetapi dalam kode layanan itu rusak. Saya mencoba men-debug layanan WCF saya sendiri yang berjalan di localhost. Bisakah Anda membantu saya, bagaimana cara memperbaikinya?

masukkan deskripsi gambar di sini

Berikut info MSVS: Microsoft Visual Studio Professional 2013 Versi 12.0.30110.00 Pembaruan 1 Microsoft .NET Framework Versi 4.5.51641 OS: Windows 8.1

Ceridan
sumber
Di MSVS2012 berfungsi dengan baik (Microsoft Visual Studio Professional 2012 Versi 11.0.61030.00 Pembaruan 4 Microsoft .NET Framework Versi 4.5.51641)
Ceridan
Saya juga melihat pesan itu dan baru saja ditingkatkan dari 2012 ke 2013.
Gary
Saya harus memutar kembali ke 2012, pada 2012 bekerja tanpa kesalahan, dan 2013 masih
gagal
juga mendapatkan kesalahan yang sama di VS 2013
zulucoda

Jawaban:

228

Ini mungkin bug di mesin debug baru (yang dikelola) yang disertakan dengan Visual Studio 2013. Coba aktifkan Mode Kompatibilitas Terkelola (yang secara efektif mengubahnya menjadi mesin debug pra-2013), yang terletak di Alat - Opsi - Debugging :

Jika ini menyelesaikan masalah, saya sarankan mencoba mereproduksinya dengan proyek kecil, dan kemudian melaporkannya di Connect , sehingga bisa diperbaiki.

@bjhuffine berkomentar di bawah ini bahwa ada cara lain untuk mengaktifkan mode kompatibilitas, tanpa menonaktifkannya secara global (mis. per proyek). Informasi lebih lanjut di sini: https://devblogs.microsoft.com/devops/switching-to-managed-compatibility-mode-in-visual-studio-2013/

Igal Tabachnik
sumber
7
Ini memperbaiki masalah saya yang sama dengan Visual Studio 2015 CTP 6.
Chris Schiffhauer
1
Konfigurasi ini menyelesaikan masalah, tetapi alat Diagnostik berhenti bekerja.
Xepe
6
Ini memperbaiki masalah saya yang sama di Visual Studio 2015 RTM (dan menonaktifkan alat diagnostik baru) tetapi saya tidak pernah mengalami masalah ini di Visual Studio 2013. Saya harus menguji ini di komputer rumah saya dan membandingkan.
ahwm
2
Anda jenius, teman saya! Saya juga menemukan ini yang tidak hanya menambah penjelasan lebih lanjut, tetapi menunjukkan cara lain untuk melakukan ini jika Anda tidak ingin perubahan global yang besar. blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/...
bjhuffine
11
Hanya untuk menambahkan; jika opsi ini berwarna abu-abu, Anda harus berhenti
men
13

Menurut pertanyaan "Kesalahan internal dalam pengevaluasi ekspresi", 'Gunakan Mode Kompatibilitas yang Dikelola', hentikan "Edit & Lanjutkan". Coba centang opsi "Gunakan penilai ekspresi C # dan VB warisan" di bawah Alat - Opsi - Debugging .

Michael Freidgeim
sumber
2

Saya mencoba jawaban Igal , dan itu tidak berhasil untuk saya, tetapi saya menemukan solusi yang berhasil untuk saya. Saya membersihkan Arloji dan mulai menambahkan item lagi. Saya perhatikan bahwa jika saya mencoba menambahkan item yang tidak ada di dalam sub atau fungsi saat ini, maka terjadi kesalahan internal.

Saya memecahkan masalah dengan menambahkan item lain dari dalam subs atau fungsinya dan tidak ada kesalahan lagi.

KomArko
sumber
Dalam situasi saya, kesalahan terjadi bahkan jika saya menambahkan item jam tangan di dalam cakupan metode, tetapi solusi dengan "Gunakan Mode Kompatibilitas Terkelola" ini membantu saya.
Ceridan
0

Jawaban Michael Freidgeim membantu saya men-debug masalah saya. Namun saya ingin menambahkan detail tambahan ke penyebab masalah saya. Hanya sedikit terkait dengan pertanyaan penanya, tetapi kesalahannya sangat menyesatkan.

Kami menggunakan kontrol Telerik RadGrid dengan GridDateTimeColumn's. Properti MinDate di grid ini default ke 01/01/1980 jadi jika Anda mengikat tanggal ke kolom ini yang kurang dari itu Anda akan melihat kesalahan ini. Hal yang aneh adalah bahwa penjilidan dan tampilan asli tidak menimbulkan masalah, hanya saat menavigasi ke halaman lain kesalahan itu terjadi.

ascriven
sumber