Trong ứng dụng ASP.Net, người dùng nhấp vào một nút trên trang web và thao tác này sau đó khởi tạo một đối tượng trên máy chủ thông qua trình xử lý sự kiện và gọi một phương thức trên đối tượng. Phương pháp này được chuyển sang hệ thống bên ngoài để thực hiện công việc và quá trình này có thể mất một lúc. Vì vậy, những gì tôi muốn làm là chạy lệnh gọi phương thức đó trong một chuỗi khác để tôi có thể trả lại quyền kiểm soát cho người dùng với "Yêu cầu của bạn đã được gửi". Tôi rất vui khi làm điều này như fire-and-forget, mặc dù nó sẽ còn tốt hơn nếu người dùng có thể tiếp tục thăm dò đối tượng để biết trạng thái.
Điều tôi không biết là liệu IIS có cho phép luồng của tôi tiếp tục chạy hay không, ngay cả khi phiên người dùng hết hạn. Hãy tưởng tượng, người dùng kích hoạt sự kiện và chúng tôi khởi tạo đối tượng trên máy chủ và kích hoạt phương thức trong một luồng mới. Người dùng hài lòng với thông báo "Yêu cầu của bạn đã được gửi" và đóng trình duyệt của mình. Cuối cùng, phiên người dùng này sẽ hết thời gian trên IIS, nhưng luồng có thể vẫn đang chạy và hoạt động. IIS sẽ cho phép luồng tiếp tục chạy hay nó sẽ giết nó và loại bỏ đối tượng sau khi phiên người dùng hết hạn?
CHỈNH SỬA: Từ các câu trả lời và nhận xét, tôi hiểu rằng cách tốt nhất để thực hiện việc này là chuyển quá trình xử lý lâu dài ra bên ngoài IIS. Ngoài mọi thứ khác, điều này giải quyết vấn đề tái chế tên miền ứng dụng. Trong thực tế, tôi cần khởi động phiên bản 1 trong thời gian có hạn và phải làm việc bên trong một khuôn khổ hiện có, vì vậy tôi muốn tránh lớp dịch vụ, do đó tôi muốn chỉ thực hiện chuỗi bên trong IIS. Trong thực tế, "chạy dài" ở đây sẽ chỉ trong vài phút và đồng thời trên trang web sẽ thấp nên không sao cả. Tuy nhiên, phiên bản tiếp theo chắc chắn sẽ cần tách thành một lớp dịch vụ riêng biệt.