Mục đích của global.asax trong asp.net là gì


100

Làm cách nào chúng ta có thể sử dụng global.asax trong asp.net? Và đó là gì?

Câu trả lời:


119

MSDN có một phác thảo về mục đích của tệp global.asax.

Về mặt hiệu quả, global.asax cho phép bạn viết mã chạy để đáp ứng các sự kiện "cấp hệ thống", chẳng hạn như ứng dụng bắt đầu, kết thúc phiên, xảy ra lỗi ứng dụng mà không cần phải thử và đánh dấu mã đó vào từng trang của trang web của bạn.

Bạn có thể sử dụng nó bằng cách chọn Thêm> Mục mới> Lớp Ứng dụng Toàn cầu trong Visual Studio. Khi bạn đã thêm tệp, bạn có thể thêm mã vào bất kỳ sự kiện nào được liệt kê (và được tạo theo mặc định, ít nhất là trong Visual Studio 2008):

  • Application_Start
  • Application_End
  • Session_Start
  • Session_End
  • Application_BeginRequest
  • Application_AuthenticateRequest
  • Lỗi ứng dụng

Có những sự kiện khác mà bạn cũng có thể tham gia, chẳng hạn như "LogRequest".


2
Mục nhập cho global.asax đã bị xóa khỏi Wikipedia.
Cathy Sullivan

Chúng ta có thể thêm tệp global.asax cho biểu mẫu windows không?
Jeeva Jsb

@JeevaJsb, không. Nội dung của global.asax là (nói chung) các sự kiện được kích hoạt bởi vòng đời ứng dụng IIS / ASP.net nên sẽ không có gì để kích hoạt mã trong ứng dụng WinForms.
Rob

Tôi tự hỏi tại sao họ không thể chỉ có một mã kế thừa từ lớp HttpApplication và không yêu cầu tệp asax. Global.asax.cs chứa tất cả nội dung, vậy tại sao lại cần một tệp asax cụ thể chỉ chứa <% @ Application Codebehind = "Global.asax.cs" Inherits = "XXXXX" Language = "C #"%>
Đơn giản Fellow

67

Các sự kiện asax toàn cầu được giải thích

Application_Init: Được kích hoạt khi một ứng dụng khởi chạy hoặc lần đầu tiên được gọi. Nó được gọi cho tất cả các trường hợp đối tượng HttpApplication.

Application_Disposed: Được kích hoạt ngay trước khi một ứng dụng bị hủy. Đây là vị trí lý tưởng để dọn dẹp các tài nguyên đã sử dụng trước đó.

Application_Error: Được kích hoạt khi gặp phải một ngoại lệ chưa được xử lý trong ứng dụng.

Application_Start: Kích hoạt khi phiên bản đầu tiên của lớp HttpApplication được tạo. Nó cho phép bạn tạo các đối tượng mà tất cả các phiên bản HttpApplication đều có thể truy cập được.

Application_End: Kích hoạt khi phiên bản cuối cùng của lớp HttpApplication bị hủy. Nó chỉ được kích hoạt một lần trong suốt thời gian tồn tại của ứng dụng.

Application_BeginRequest: Được kích hoạt khi nhận được yêu cầu ứng dụng. Đây là sự kiện đầu tiên được kích hoạt cho một yêu cầu, thường là một yêu cầu trang (URL) mà người dùng nhập vào.

Application_EndRequest: Sự kiện cuối cùng được kích hoạt cho một yêu cầu ứng dụng.

Application_PreRequestHandlerExecute: Được kích hoạt trước khi khung trang ASP.NET bắt đầu thực thi một trình xử lý sự kiện như một trang hoặc dịch vụ Web.

Application_PostRequestHandlerExecute: Được kích hoạt khi khung trang ASP.NET hoàn tất việc thực thi một trình xử lý sự kiện.

Applcation_PreSendRequestHeaders: Được kích hoạt trước khi khung trang ASP.NET gửi tiêu đề HTTP đến một ứng dụng khách yêu cầu (trình duyệt).

Application_PreSendContent: Được kích hoạt trước khi khung trang ASP.NET gửi nội dung đến máy khách yêu cầu (trình duyệt).

Application_AcquireRequestState: Được kích hoạt khi khung trang ASP.NET nhận được trạng thái hiện tại (Trạng thái phiên) liên quan đến yêu cầu hiện tại.

Application_ReleaseRequestState: Được kích hoạt khi khung trang ASP.NET hoàn thành việc thực thi tất cả các trình xử lý sự kiện. Điều này dẫn đến tất cả các mô-đun trạng thái để lưu dữ liệu trạng thái hiện tại của chúng.

Application_ResolveRequestCache: Được kích hoạt khi khung trang ASP.NET hoàn thành một yêu cầu ủy quyền. Nó cho phép các mô-đun bộ nhớ đệm phục vụ yêu cầu từ bộ đệm, do đó bỏ qua việc thực thi trình xử lý.

Application_UpdateRequestCache: Được kích hoạt khi khung trang ASP.NET hoàn thành thực thi trình xử lý để cho phép các mô-đun bộ nhớ đệm lưu trữ các phản hồi được sử dụng để xử lý các yêu cầu tiếp theo.

Application_AuthenticateRequest: Được kích hoạt khi mô-đun bảo mật đã thiết lập danh tính của người dùng hiện tại là hợp lệ. Tại thời điểm này, thông tin đăng nhập của người dùng đã được xác thực.

Application_AuthorizeRequest: Được kích hoạt khi mô-đun bảo mật đã xác minh rằng người dùng có thể truy cập tài nguyên.

Session_Start: Được kích hoạt khi người dùng mới truy cập trang Web ứng dụng.

Session_End: Được kích hoạt khi phiên của người dùng hết thời gian chờ, kết thúc hoặc họ rời khỏi trang Web ứng dụng.



6

Global.asax là tệp ứng dụng asp.net.

Nó là một tệp tùy chọn xử lý các sự kiện do ASP.NET hoặc HttpModules đưa ra. Chủ yếu được sử dụng cho các sự kiện bắt đầu / kết thúc ứng dụng và phiên và để xử lý lỗi toàn cầu.

Khi được sử dụng, nó phải ở trong thư mục gốc của trang web.


3

Thư mục gốc của một ứng dụng web có một ý nghĩa đặc biệt và một số nội dung nhất định có thể có trong thư mục đó. Nó có thể có một tệp đặc biệt được gọi là “Global.asax”. Khung ASP.Net sử dụng nội dung trong global.asax và tạo một lớp trong thời gian chạy, lớp này được kế thừa từ HttpApplication. Trong suốt thời gian tồn tại của một ứng dụng, ASP.NET duy trì một nhóm các cá thể HttpApplication có nguồn gốc Global.asax. Khi một ứng dụng nhận được yêu cầu http, khuôn khổ trang ASP.Net sẽ chỉ định một trong những trường hợp này để xử lý yêu cầu đó. Cá thể đó chịu trách nhiệm quản lý toàn bộ thời gian tồn tại của yêu cầu mà nó được chỉ định và cá thể chỉ có thể được sử dụng lại sau khi yêu cầu đã được hoàn thành khi nó được trả về nhóm. Các thành viên cá thể trong Global.asax không thể được sử dụng để chia sẻ dữ liệu qua các yêu cầu nhưng thành viên tĩnh có thể được. Toàn cầu.


1

Global.asax có thể được sử dụng để xử lý các sự kiện phát sinh từ ứng dụng. Liên kết này cung cấp một lời giải thích tốt: http://aspalliance.com/1114

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.