Penanganan Kesalahan WCF

Kesalahan yang ditemui oleh aplikasi WCF milik salah satu dari tiga grup:

  1. Kesalahan Komunikasi

  2. Kesalahan Proksi/Saluran

  3. Kesalahan Aplikasi

Kesalahan komunikasi terjadi ketika jaringan tidak tersedia, klien menggunakan alamat yang salah, atau host layanan tidak mendengarkan pesan masuk. Kesalahan jenis ini dikembalikan ke klien sebagai kelas CommunicationException atau turunan CommunicationException.

Kesalahan Proksi/Saluran adalah kesalahan yang terjadi dalam saluran atau proksi itu sendiri. Kesalahan jenis ini meliputi: mencoba menggunakan proksi atau saluran yang telah ditutup, ketidakcocokan kontrak ada antara klien dan layanan, atau kredensial klien ditolak oleh layanan. Ada banyak jenis kesalahan yang berbeda dalam kategori ini, terlalu banyak untuk dicantumkan di sini. Kesalahan jenis ini dikembalikan ke as-is klien (tidak ada transformasi yang dilakukan pada objek pengecualian).

Kesalahan aplikasi terjadi selama eksekusi operasi layanan. Kesalahan jenis ini dikirim ke klien sebagai FaultException atau FaultException<TDetail>.

Penanganan kesalahan di WCF dilakukan oleh satu atau beberapa hal berikut:

  • Langsung menangani pengecualian yang dilemparkan. Ini hanya dilakukan untuk kesalahan komunikasi, proksi, atau saluran.

  • Menggunakan kontrak kesalahan (fault contracts)

  • Menerapkan IErrorHandler antarmuka

  • Menangani ServiceHost peristiwa

Kontrak Kegagalan

Kontrak kesalahan memungkinkan Anda menentukan kesalahan yang dapat terjadi selama operasi layanan dengan cara independen platform. Secara default semua pengecualian yang dilemparkan dari dalam operasi layanan akan dikembalikan ke klien sebagai FaultException objek. Objek FaultException akan berisi informasi yang sangat sedikit. Anda dapat mengontrol informasi yang dikirim ke klien dengan menentukan kontrak kesalahan dan mengembalikan kesalahan sebagai FaultException<TDetail>. Untuk informasi selengkapnya, lihat Menentukan dan Menangani Kesalahan dalam Kontrak dan Layanan.

IErrorHandler

Antarmuka IErrorHandler memberi Anda lebih banyak kontrol atas cara aplikasi WCF Anda merespons kesalahan. Ini memberi Anda kontrol penuh atas pesan kesalahan yang dikembalikan ke klien dan memungkinkan Anda untuk melakukan pemrosesan kesalahan kustom seperti pengelogan. Untuk informasi selengkapnya tentang IErrorHandler dan Memperluas Kontrol Atas Penanganan dan Pelaporan Kesalahan

Peristiwa ServiceHost

Kelas ServiceHost menghosting layanan dan menentukan beberapa peristiwa yang mungkin diperlukan untuk menangani kesalahan. Contohnya:

  1. Faulted

  2. UnknownMessageReceived

Untuk informasi lebih lanjut, lihat ServiceHost