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_Error
phương pháp trongGlobal.asax.cs
- Đăng ký
AppDomain.CurrentDomain.UnhandledException
- Đăng ký
TaskScheduler.UnobservedTaskException
Các ExceptionHandlingAttribute
xử 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
IQueryable
phươ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?