Ứng dụng ASP.NET phải xử lý các ngoại lệ chưa được xử lý đang xảy ra trên một chuỗi nền không yêu cầu (do lỗi)?Làm thế nào để xử lý unhandled thread-ngoại lệ trong ASP.NET?
Theo mặc định, các ngoại lệ như vậy làm cho quá trình chấm dứt. Điều này là không thể chấp nhận được trong cài đặt của một quy trình công nhân ASP.NET vì yêu cầu đồng thời chạy bị hủy bỏ không thể đoán trước. Nó cũng là một vấn đề hiệu suất.
Trường hợp ngoại lệ trên chuỗi yêu cầu không phải là vấn đề vì ASP.NET xử lý chúng (bằng cách hiển thị trang lỗi).
Sự kiện AppDomain.UnhandledException
cho phép quan sát thấy một ngoại lệ đã xảy ra, nhưng không thể ngăn chặn việc chấm dứt tại thời điểm đó.
Dưới đây là bản repro cần được dán vào mã trang của ASPX.
protected void Page_Load(object sender, EventArgs e)
{
var thread = new Thread(() =>
{
throw new InvalidOperationException("some failure on a helper thread");
});
thread.Start();
thread.Join();
}
Giải pháp duy nhất tôi biết là không bao giờ để ngoại lệ "thoát" được giải quyết. Có giải pháp nào khác, toàn cầu hơn và toàn diện hơn cho việc này không?
Tôi đang gặp phải vấn đề tương tự ... lạ như thế nào nhóm asp.net không bao giờ được coi là giải pháp cho điều này.Tôi có một mô-đun http phần thứ ba là không tại một số điểm và ném ngoại lệ mà gây ra quá trình công nhân để hiển thị "Dịch vụ không có sẵn" !!! –