Để bắt đầu, đây là một cuộc thảo luận nếu có ai trong số các bạn làm một điều như yêu cầu hủy trong bộ điều khiển WebAPI (có thể cũng áp dụng cho MVC).Asp.net WebAPI: Hủy bỏ (hủy bỏ) yêu cầu
Điều tôi ngụ ý cụ thể là một kịch bản như sau: Một khách hàng (trình duyệt thường) bắt đầu yêu cầu, điều hướng đi hoặc tổng quát hơn, hủy yêu cầu vì bất kỳ lý do gì. Bây giờ, yêu cầu bị hủy bỏ ở phía khách hàng và sẽ không còn được xem xét. Nhưng ở phía máy chủ theo yêu cầu vẫn đang diễn ra và thường có thể làm 2 điều đặc biệt thú vị:
- Thực hiện một (nặng) DB-Query
- Thực hiện một (nặng) gọi dịch vụ khác phục vụ
Và tất cả không có gì cuối cùng (ít nhất là khi nó là một tác dụng phụ miễn phí đọc hoạt động ít nhất).
Có ai đó xử lý việc hủy cuộc gọi truy vấn/dịch vụ đang diễn ra trong trường hợp này không?
Những gì tôi biết là một CancellationToken có thể được thông qua trong API-Controller (mặc dù tôi không thể làm cho nó hoạt động để hủy bỏ được thực sự yêu cầu khi hủy bỏ từ khách hàng). Lý do hủy bỏ này, sẽ cần phải được chuyển xuống tất cả các tầng thấp hơn để xử lý việc hủy bỏ các cuộc gọi dịch vụ và DB.
điều này có thể không trả lời đầy đủ câu hỏi của bạn, nhưng hãy xem http://stackoverflow.com/questions/19010856/should-we-use-cancellationtoken-with-mvc-web-api-controllers – David
Nghe có vẻ thú vị . Nó có vẻ như nó có thể được quản lý để sử dụng CancellationToken như một tham số (điều này tôi biết) và đặc biệt là nó đã bị hủy bỏ bởi khuôn khổ. – cmart