Saya hanya mengalami masalah yang sama dan tidak ada jawaban di sini mengenai masalah yang saya hadapi. Tidak seperti dalam pertanyaan itu, saya tidak pernah menerima pesan yang mengatakan ada kegagalan untuk mengikat. Breakpoint tidak pernah mengenai. Semoga ini bermanfaat bagi seseorang di masa depan yang membenturkan kepalanya ke dinding dengan WCF.
TL / DR:
Dalam pesan SOAP ada catatan dengan data buruk menyebabkan breakpoint tidak terkena.
Cerita lengkap:
Saya memiliki layanan WCF berdasarkan WSDL dari tim lain. Bukan definisi saya, tidak ada kontrol atasnya ... Saya menerima pesan dari tim lain ini melalui layanan ini. Dalam kasus saya, saya menerima pesan, dapat mencatat pesan ke tabel log pesan di database (yang terjadi sebelum metode layanan saya dipanggil), metode layanan tampaknya dipanggil (mungkin tidak), dan server merespons dengan a 202 Diterima. Komunikasi berfungsi, kecuali tidak ada data yang disimpan ke database selama panggilan metode.
Karena layanan mengembalikan respons sukses, saya mengesampingkan http dan mengangkut masalah terkait.
Jadi saya menyalakan VS2015 untuk men-debug layanan. Pesan yang dipermasalahkan besar tetapi baik dalam batas-batas apa yang saya harapkan. Saya meletakkan breakpoint pada baris pertama metode layanan dan mengirim pesan besar, tetapi breakpoint tidak pernah memukul. Saya mencoba pesan yang lebih kecil yang saya tahu bekerja pada menjalankan contoh yang sama dan breakpoint baik-baik saja. Jadi semuanya dalam konfigurasi tampak baik-baik saja. Saya pikir mungkin ada sesuatu dalam ukuran pesan.
Saya mencoba semua yang saya bisa temukan - memastikan saya berada dalam konfigurasi debug, bersihkan dan bangun kembali, secara manual melampirkan debugger ke proses w3wp (yang sudah VS), menggunakan Debugger.Break()
bukannya breakpoint, mengatur beberapa proyek startup, membongkar proyek pengujian saya sehingga proyek layanan adalah satu-satunya, memperbarui. NET, memulai kembali VS2015, me-reboot, beralih dari IIS Lokal ke IIS Express dan kembali, menciptakan kembali layanan dengan WSDL terbaru yang dijamin. Tidak ada yang penting. Breakpoint tidak pernah mengenai.
Saya akhirnya harus membuang catatan dalam pesan besar satu per satu sampai saya menemukan satu catatan tunggal yang memiliki data buruk. Dalam kasus saya itu adalah satu catatan yang tidak memiliki nilai untuk 2 bidang DateTime. Ketika saya membuat pesan yang hanya memiliki satu catatan ini di dalamnya dan mengirimkannya, breakpoint tidak terkena. Ketika saya memberikan nilai untuk 2 bidang DateTime tersebut dan mengirim pesan (tetap) yang sama di breakpoint yang dipecat seperti yang diharapkan.
Saya memiliki setiap pengecualian CLR diaktifkan, tidak ada yang ditembakkan selain file .pbd yang hilang, yang tidak saya pedulikan. WCF dengan senang hati mengirimkan permintaan dengan catatan buruk. Saya tidak mengatakan bahwa WCF seharusnya tidak mengirimkannya berdasarkan kontrak, hanya saja catatan buruk itu menyebabkan breakpoint tidak terkena.