Tập tin Global.asax và web.config trong ASP.Net

Những ai học về WEB ASP.Net thì chắc sẽ biết đến hai tập tin này Global.asaxweb.config đây là hai tập tin quản lý và cấu hình ứng dụng trong ASP.Net hôm nay chúng ta sẽ tìm hiểu sơ lược về vấn đề này.

Tập tin Global.asax trong ASP.Net

Tập tin Global.asax được dùng để:

  • Khai báo và khởi tạo giá trị cho các biến Application, Session.
  • Viết xử lý cho các sự kiện của 2 đối tượng Application và Session.
Tập tin Global.asax trong Asp.net

Tập tin Global.asax trong Asp.net

Cấu trúc tập tin Global.asax

<!--
<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup

    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.

    }
</script>
-->
Các sự kiện trong tập tin Global.asax

Application_Start: Chỉ xảy ra một lần đầu tiên khi bất kỳ trang nào trong ứng dụng được gọi. Ứng dụng xây dựng tính năng đếm số người online, truy cập trong website.

    void Application_Start(object sender, EventArgs e) 
    {
        // Khai báo đếm số người truy cập
        
        Application["So_luot_truy_cap"] = 0 
        Application["So_nguoi_online"] = 0
    }

Session_Start: Xảy ra khi có một người dùng mới yêu cầu đến bất kỳ trang aspx của ứng dụng. Khi Session_Start xảy ra, một giá trị duy nhất (SessionID) sẽ được tạo cho người dùng, và giá trị này được sử dụng để quản lý người dùng trong quá trình làm việc với ứng dụng.

<!--
    void Session_Start(object sender, EventArgs e) 
    {
        // Tăng giá trị biến Application
        Application["So_luot_truy_cap"] = (int)Application["So_luot_truy_cap"] + 1;
        Application["So_nguoi_online"] = (int)Application["So_nguoi_online"] + 1;
    }
-->

Application_BeginRequest: Xảy ra khi mỗi khi có Postback về Server.
Sub Application_Error: Xảy ra khi có lỗi phát sinh trong quá trình thi hành.
Session_End: Xảy ra khi phiên làm việc không có gởi yêu cầu hoặc làm tươi trang aspx của ứng dụng web trong một khoảng thời gian (mặc định là 20 phút).

<!--
    void Session_End(object sender, EventArgs e) 
    {
        // Giảm giá trị biến Application
        Application["So_nguoi_online"] = (int)Application["So_nguoi_online"] - 1;
    }
-->

Qua tập tin Global.asax bạn có thể xây dựng được ứng dụng đếm số người truy cập và người online trong website chúng ta. Ở người online thì dựa vào Session_Start và Session_End mà giảm tăng rồi xuất biến Application ra ngoài trang chủ còn về số lược truy cập thì cứ cộng dồn vào do đó bạn phải ghi vào file text hay vào trong CSDL số lượng đó để biến tăng dần lên theo ngày tháng!

File web.config trong ASP.Net

Web.config là một tập tin văn bản được sử dụng để lưu trữ thông tin cấu hình của một ứng dụng, được tự động tạo ra khi chúng ta tạo mới ứng dụng web. Tập tin web.config được viết theo định dạng XML.

Web.config được tạo kế thừa các giá trị từ tập tin Windows\Microsoft. NET\Framework\[Framework Version]\CONFIG\machine.config

Tập tin cấu hình ứng dụng Web.config:

<!--
<?xml version="1.0"?>
    <configuration>
          <configSections>
                ...........
          </configSections>

          <system.web>
                 ..........
          </system.web>
    </configuration>
-->
Các cấu hình mặc định trong file web.config

1. Set ngôn ngữ và Bật/tắt debug

<!--
     <compilation debug="true"/> 
-->
  • defaultLanguage: qui định ngôn ngữ mặc định của ứng dụng. Ở đây là C#
  • debug: Bật/tắt chế độ debug của ứng dụng

2. Cấu hình về lỗi trong file web.config

<!--
<customErrors mode="RemoteOnly"/>
-->

Đây là một cấu hình khá cần thiết cho ứng dụng Web. Hiệu chỉnh cấu hình này cho phép chúng ta quản lý việc xử lý lỗi khi có lỗi phát sinh trong ứng dụng.

  • Thuộc tính mode có các giá trị: RemoteOnly, On và Off.
  • RemoteOnly: Cho phép người dùng thấy thông báo lỗi của hệ thống hoặc trang thông báo lỗi được chỉ định qua defaultRedirect (nếu có).
  • Thông báo lỗi gồm: Mã lỗi và mô tả lỗi tương ứng
<!--
<customErrors mode="RemoteOnly" defaultRedirect="ThongBaoLoi.aspx"/>
-->
  • On: Tức là mode=”On” Tùy theo giá trị của defaultRedirect mà có các trường hợp tương ứng:

ƒCó qui định trang thông báo lỗi qua defaultRedirect: Hiển thị trang thông báo lỗi.

Tùy chọn mode là on se Redirect sang trang Lỗi

Tùy chọn mode là on se Redirect sang trang Lỗi

Không có thuộc tính defaultRedirect: Hiển thị trang báo lỗi nhưng không có hiển thị mã lỗi và mô tả lỗi.

Thông báo lỗi chi tiết khi không khai báo trong web config

Thông báo lỗi chi tiết khi không khai báo trong web config

3. sessionState

<!--
<sessionState  
   mode="InProc" 
   stateConnectionString="tcpip=127.0.0.1:42424" 
   sqlConnectionString="data source=127.0.0.1; 
   Trusted_Connection=yes" 
   cookieless="false"  
   timeout="20" />
-->
  • mode: Thuộc tính này có 3 giá trị: InProc, sqlserver (lưu trong database), và stateserver (lưu trong bộ nhớ)
  • stateConnectionString: Cấu hình địa chỉ và cổng (port) của máy để lưu trữ thông tin của Session trong vùng nhớ (nếu chức năng này được chọn).
  • sqlConnectionString: Cấu hình kết nối đến SQL Server được dùng để lưu thông tin Session (nếu chức năng này được chọn).
  • cookieless: Nếu giá trị của thuộc tính này = True, thông tin cookie sẽ được lưu trữ trong URL, ngược lại, nếu = False, thông tin cookies sẽ được lưu trữ tại client (nếu client có hỗ trợ)
  • timeout: Khoảng thời gian (tính bằng phút) mà đối tượng Session được duy trì. Sau khoảng thời gian này, đối tượng Session sẽ bị huỷ. Giá trị mặc định của thuộc tính này là 20.

Kết luận: Đây chỉ là vài phần cơ bản, còn rất nhiều thư nữa trong hai file này, thất ra thì trong bài Login not Database chúng ta đã có sử dụng file web.config này rồi hôm nay làm rõ hơn một tí! 🙂 OK, vậy là xong bài này chúng ta có thể xây dựng tính năng hiển thị số người truy cập và số người online trong web asp.net ngoài ra còn biết cách cấu hình cơ bản trong file web.config! Chúc thành công!

Nguồn: Giáo trình ASP.Net Đại học khoa học tự nhiên TP.HCM

VN:F [1.9.22_1171]
Rating: 9.4/10 (16 votes cast)
Tập tin Global.asax và web.config trong ASP.Net, 9.4 out of 10 based on 16 ratings
Share This