2011-02-02 36 views
28

Tôi có một mã VB.NET được gọi khi tôi cần xóa một đối tượng khỏi DB. Trên Page_load tôi kiểm tra xem nó không đăng lại (để tránh làm mới thủ công) và, sau khi xóa đối tượng tôi chuyển hướng đến trang người gọi bằng cách sử dụng Response.redirect. Tại thời điểm này mã của tôi tăng một ngoại lệResponse.redirect đặt ra "Chủ đề đã bị hủy bỏ"

: ngoại lệ xảy ra Trong File_delete.aspx.vb Số Line: 34 Thông báo lỗi: Chủ đề đã bị hủy bỏ.

và, vào Event Viewer Tôi có thể thấy rằng aspnet_wp.exe tai nạn:

aspnet_wp.exe (PID: 1532) ngừng bất ngờ.

Để biết thêm thông tin, hãy xem Trợ giúp và Trung tâm hỗ trợ tại http://go.microsoft.com/fwlink/events.asp.

Không rõ tại sao điều này chỉ xảy ra ở đây vì tôi sử dụng response.redirect cũng để xem tệp và không chỉ xóa tệp đó.

+0

Đóng trùng lặp http://stackoverflow.com/questions/1433448/thread-was-being-aborted –

Trả lời

89

Theo mặc định, Response.Redirect() hủy bỏ chuỗi hiện tại. Đương nhiên, điều này ném một ThreadAbortException. Nó có thể được ngăn chặn bằng cách chuyển một số false đến Response.Redirect(), thao tác này sẽ không hủy bỏ chuỗi hiện tại.

Hãy nhận biết điều đó có nghĩa là gì. Nếu luồng không bị hủy, mã theo sau Response.Redirect() sẽ tiếp tục thực thi. Kiểm soát luồng logic của bạn cho phù hợp. (. Điều này thường được thực hiện với return báo cáo và chỉ thị kiểm soát dòng chảy khác sau một chuyển hướng)

13

Response.Redirect sẽ luôn ném một ThreadAbortException, theo tài liệu MSDN nếu bạn không đưa ra một "false" boolean giá trị cho "endResponse" tham số đầu vào HttpRequest.Redirect (string, bool):

Chỉ cần cung cấp thông số "sai" cho "endResponse".

+1

Đây là phương pháp được khuyến nghị, bạn chỉ cần cẩn thận sử dụng mã này sau khi Response.Redirect sẽ được thực thi. –

+1

http://support.microsoft.com/kb/312629 –

+9

Sau khi gọi Response.Redirect (url, false), hãy gọi \t \t HttpContext.Current.ApplicationInstance.CompleteRequest(); để chấm dứt mà không có ngoại lệ. – StanleyH

0

Response.Redirect ném ngoại lệ là thiết kế. Không sao.

Các vấn đề liên quan