Tôi tự hỏi trong trường hợp nào tôi nên đặt mã khởi tạo ứng dụng vào số Application_Start()
và Init()
trong tệp Global.asax
của mình?Khi nào sử dụng Application_Start vs Init trong Global.asax?
Sự khác biệt giữa hai điều này dường như không rõ ràng đối với tôi, khác với Application_start
được gọi trước, sau đó Init()
.
- Tại sao tôi nên sử dụng cái kia?
- Thực sự có tạo sự khác biệt không?
- Những thay đổi nào trong trạng thái đơn đăng ký giữa hai sự kiện?
Cho đến nay con trỏ thực duy nhất tôi có thể tìm thấy là IHttpModule
chỉ có một phương pháp Init()
, vì vậy nếu những gì tôi đang làm may tại một số điểm phù hợp hơn để thực hiện IHttpModule
tôi nên sử dụng phương pháp Init()
của Global.asax
, nếu không có gì khác cho tính nhất quán.
Bit của câu hỏi tiếp theo: khi nào một phiên bản của HttpApplication được tạo? Tôi giả sử mỗi khi quy trình công nhân được khởi động lại và nó sẽ chứa một cá thể cho mỗi luồng công nhân? – roryf
@roryf - asp.net duy trì một nhóm các cá thể ứng dụng có thể được sử dụng lại. Dưới nắp, yêu cầu được phục vụ bằng cách sử dụng CLR threadpool và yêu cầu đến sẽ được xếp hàng đợi vượt quá một ngưỡng nhất định. Tôi nghi ngờ họ khởi tạo hồ sơ cá thể ứng dụng đến mức ngưỡng đó vì hầu hết các trang web sẽ không thấy loại lưu lượng truy cập đó. Tôi nghi ngờ họ tạo ra các hồ bơi với một số ít các trường hợp và sau đó tăng kích thước của hồ bơi khi nhu cầu dốc lên. –