Bagaimana cara menangkap semua pengecualian tidak tertangani yang terjadi di ASP.NET Web Api sehingga saya bisa mencatatnya?
Sejauh ini saya sudah mencoba:
- Buat dan daftarkan
ExceptionHandlingAttribute
- Terapkan
Application_Error
metode diGlobal.asax.cs
- Berlangganan
AppDomain.CurrentDomain.UnhandledException
- Berlangganan
TaskScheduler.UnobservedTaskException
The ExceptionHandlingAttribute
berhasil menangani pengecualian yang dilemparkan dalam metode aksi controller dan filter tindakan, tetapi pengecualian lainnya tidak ditangani, misalnya:
- Pengecualian dilempar ketika
IQueryable
dikembalikan oleh metode tindakan gagal dijalankan - Pengecualian dilemparkan oleh penangan pesan (yaitu
HttpConfiguration.MessageHandlers
) - Pengecualian diberikan saat membuat instance pengontrol
Pada dasarnya, jika pengecualian akan menyebabkan 500 Internal Server Error dikembalikan ke klien, saya ingin itu masuk. Menerapkan Application_Error
melakukan pekerjaan ini dengan baik di Formulir Web dan MVC - apa yang dapat saya gunakan di Api Web?