ในแอปพลิเคชันของเรา เรามีชุดของ hooks การบันทึกที่ค่อนข้างตรงไปตรงมา (IExceptionFilters บนตัวควบคุม MVC และ API และ catch-all เพิ่มเติมใน Application_Error()) แต่มีข้อผิดพลาดทั้งหมวดหมู่ที่ไม่ทริกเกอร์ข้อผิดพลาดใดๆ หากข้อยกเว้นถูกส่งมาจากภายใน WebAPI เอง หรือจากสิ่งที่ใช้ภายใน (เช่น ตัวเริ่มต้นประเภทของคลาสที่ถูกสร้างขึ้นโดยตัวแก้ไขการขึ้นต่อกัน) ทั้งหมดที่ฉันได้รับก็คือการตอบกลับ 500 รายการถูกส่งไปยังไคลเอนต์
วิธีเดียวที่ฉันพบว่าสามารถบันทึกรายละเอียดข้อผิดพลาดได้คือใช้ HttpConfiguration.IncludeErrorDetailPolicy เพื่อกำหนดค่าแอปพลิเคชันให้ปล่อยรายละเอียดข้อผิดพลาด อย่างไรก็ตาม การเผยแพร่รายละเอียดข้อผิดพลาดของคุณให้โลกได้รับรู้ถือเป็นแนวปฏิบัติที่ไม่ดี ดังนั้น ฉันจึงอยากจะเปลี่ยน ปิดสิ่งนี้ทั้งหมดหรือตั้งค่าเป็นสิ่งที่มีเงื่อนไข (เช่นในเครื่องเท่านั้น) .. แต่นั่นหมายถึงการย้ายระยะไกลไปยังเซิร์ฟเวอร์ที่แอปพลิเคชันทำงานอยู่และเรียกใช้ API ในเครื่องด้วยเครื่องมือที่สามารถตรวจสอบการตอบสนอง (เช่น IE หรือ Google Chrome) เพื่อดูว่าเกิดอะไรขึ้น
ฉันเคยเห็นคำถามอื่นที่นี่ในลักษณะเดียวกัน (ที่นี่) แต่วิธีแก้ปัญหาที่นำเสนอ (โดยใช้ DelegatingHandler เพื่อตรวจสอบการตอบสนอง) ไม่ตรงกับความต้องการของเรา ไม่มีเหตุการณ์ใดที่ฉันสามารถขอส่วนขยายที่ฉันสามารถใช้ได้หรืออะไรทำนองนั้นเพื่อบันทึกข้อยกเว้นจริงที่เกิดขึ้นหรือไม่
(นอกเหนือจากนี้ ฉันคิดว่าฉันสามารถเปลี่ยน InclusiveErrorDetailPolicy เป็น Always และใช้วิธีแก้ปัญหาที่นำเสนอในเธรดอื่นเพื่อบันทึกรายละเอียดข้อผิดพลาดใน MessageHandler บันทึกและขัดมันด้วยตนเองจากการตอบกลับที่ส่งไปยังไคลเอนต์ แต่นั่น จะเป็นแฮ็คที่น่ารังเกียจ)
ความคิด? :/