Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

PRB: ThreadAbortException xảy ra nếu bạn sử dụng Response.End, Response.Redirect hoặc Server.Transfer

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 312629
Triệu chứng
Nếu bạn sử dụng Response.End, Response.Redirect, hoặc phương pháp Server.Transfer , một ngoại lệ ThreadAbortException xảy ra. Bạn có thể sử dụng một tuyên bố thử-bắt để đón ngoại lệ này.
Nguyên nhân
Các phương pháp Response.End kết thúc thực hiện trang và thay đổi thực hiện để các sự kiện Application_EndRequest trong đường ống dẫn sự kiện của ứng dụng. Dòng mã sau Response.End không được thực hiện.

Vấn đề này xảy ra trong các phương pháp Response.RedirectServer.Transfer bởi vì cả hai phương pháp gọi Response.End trong nội bộ.
Giải pháp
Để làm việc xung quanh vấn đề này, sử dụng một trong những phương pháp sau đây:
  • Cho Response.End, gọi là HttpContext.Current.ApplicationInstance.CompleteRequest phương pháp thay vì Response.End để bỏ qua việc thực hiện mã để các Application_EndRequest sự kiện.
  • Cho Response.Redirect, sử dụng một tình trạng quá tải, Response.Redirect (chuỗi url, bool endResponse) mà đi sai Đối với các endResponse tham số để ngăn chặn các cuộc gọi nội bộ để Response.End. Ví dụ:
      Response.Redirect ("nextpage.aspx", false);						
    Nếu bạn sử dụng workaround này, mã mà sau Response.Redirect được thi hành.
  • Cho Server.Transfer, sử dụng các Server.Execute phương pháp để thay thế.
Tình trạng
Hành vi này là do thiết kế.

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 312629 - Xem lại Lần cuối: 08/30/2012 22:39:00 - Bản sửa đổi: 3.0

Microsoft ASP.NET 4.5, Microsoft ASP.NET 4.0, Microsoft ASP.NET 3.5, Microsoft ASP.NET 2.0, Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbexcepthandling kbprb kbmt KB312629 KbMtvi
Phản hồi