Làm cách nào để bắt tất cả các ngoại lệ không được xử lý xảy ra trong ASP.NET Web Api để tôi có thể ghi lại chúng?
Cho đến nay tôi đã thử:
- Tạo và đăng ký
ExceptionHandlingAttribute - Triển khai một
Application_Errorphương pháp trongGlobal.asax.cs - Đăng ký
AppDomain.CurrentDomain.UnhandledException - Đăng ký
TaskScheduler.UnobservedTaskException
Các ExceptionHandlingAttributexử lý thành công trường hợp ngoại lệ được ném trong phương pháp hành động điều khiển và bộ lọc hành động, nhưng trường hợp ngoại lệ khác không được xử lý, ví dụ:
- Các ngoại lệ được ném ra khi một
IQueryablephương thức hành động trả về không thực thi được - Các ngoại lệ do một trình xử lý tin nhắn ném ra (tức là
HttpConfiguration.MessageHandlers) - Các ngoại lệ được ném ra khi tạo một phiên bản bộ điều khiển
Về cơ bản, nếu một ngoại lệ sẽ gây ra Lỗi máy chủ nội bộ 500 được trả lại cho máy khách, tôi muốn nó được ghi lại. Việc triển khai Application_Errorđã làm tốt công việc này trong Web Forms và MVC - tôi có thể sử dụng gì trong Web Api?