2010-05-12 35 views
6

Khi nào nên sử dụng và không sử dụng tệp global.asax trong ứng dụng asp.net? Tôi nghe nói rằng bạn nên sử dụng tập tin đó chỉ với một nhúm.Sử dụng ASP.NET global.asax

+0

Bạn nghe thấy điều này ở đâu? Và lý do là gì? – Codesleuth

+0

Tôi không nhớ chính xác, nhưng tôi nghe nói rằng ai đó đã nói điều này. – Azat

Trả lời

6

File Global.asax được sử dụng để thực hiện các ứng dụng và trình độ phiên các sự kiện, chẳng hạn như:

Application_Init - kích hoạt khi một ứng dụng đầu tiên khởi

Application_Start - phát sinh khi ứng dụng đầu tiên bắt đầu

Application_End - sự kiện cuối cùng được kích hoạt khi ứng dụng kết thúc hoặc ra ngoài

Session_Start - được kích hoạt lần đầu tiên khi phiên của người dùng được bắt đầu

Application_BeginRequest - bắn với mỗi yêu cầu mới

Application_EndRequest - phát sinh khi ứng dụng kết thúc

Application_AuthenticateRequest - sự kiện này chỉ ra rằng một yêu cầu đã sẵn sàng để được chứng thực.

Application_Error - kích hoạt khi một lỗi unhandled xảy ra trong ứng dụng

Session_End - bị sa thải bất cứ khi nào một phiên người dùng duy nhất kết thúc hoặc thời gian ra.

Việc triển khai các trình xử lý này đều có thể là sử dụng hợp pháp của global.asax. Ví dụ, trình xử lý sự kiện Application_Error thường ghi lại bất kỳ lỗi toàn cục nào và trình xử lý sự kiện Application_End thường chứa logic dọn dẹp ứng dụng. Đây là những cách sử dụng tốt của Global.asax. Sử dụng chúng bất cứ khi nào cần thiết và đừng sợ nếu tập tin phát triển.

Tuy nhiên, tôi đã thấy các trường hợp nhà phát triển đã thêm tất cả các loại phương pháp toàn cầu vào global.asax thực sự không được chứng minh. Ví dụ, giữ logic nghiệp vụ liên quan đến một đối tượng miền cụ thể bên trong đối tượng chính nó chứ không phải trong global.asax. Nếu bạn tìm thấy các phương thức trong Global.asax, không nên có refactor công việc vào đúng vị trí.

1

global.asax là một HTTPModule. Tất cả các yêu cầu đều đi qua global.asax và các mô-đun khác trước khi chúng tới trình xử lý trang của bạn. Sử dụng tính năng này để thực hiện một số tác vụ nhất định đối với yêu cầu hoặc phản hồi của bạn, như định tuyến url, xử lý lỗi toàn cục, v.v.

0

Nếu bạn cần điều gì đó đặc biệt xảy ra trên Ứng dụng bắt đầu/kết thúc hoặc bắt đầu/kết thúc xử lý trên toàn cầu bạn có thể sử dụng nó để ánh xạ các sự kiện trong vòng lặp Apllication và Session life.

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