จุดประสงค์ของ global.asax ใน asp.net คืออะไร


คำตอบ:


119

MSDN มีโครงร่างวัตถุประสงค์ของไฟล์ global.asax

global.asax ได้อย่างมีประสิทธิภาพช่วยให้คุณสามารถเขียนโค้ดที่ทำงานเพื่อตอบสนองต่อเหตุการณ์ "ระดับระบบ" เช่นการเริ่มต้นแอปพลิเคชันการสิ้นสุดเซสชันข้อผิดพลาดของแอปพลิเคชันที่เกิดขึ้นโดยไม่ต้องพยายามบีบแตรรหัสนั้นลงในแต่ละรายการ หน้าเว็บไซต์ของคุณ

คุณสามารถใช้ได้โดยเลือกเพิ่ม> รายการใหม่> Global Application Class ใน Visual Studio เมื่อคุณเพิ่มไฟล์แล้วคุณสามารถเพิ่มโค้ดภายใต้เหตุการณ์ใด ๆ ที่อยู่ในรายการ (และสร้างขึ้นโดยค่าเริ่มต้นอย่างน้อยใน Visual Studio 2008):

  • Application_Start
  • Application_End
  • Session_Start
  • Session_End
  • Application_BeginRequest
  • Application_AuthenticateRequest
  • Application_Error

มีเหตุการณ์อื่น ๆ ที่คุณสามารถเชื่อมโยงได้เช่น "LogRequest"


2
รายการสำหรับ global.asax ถูกลบออกจาก Wikipedia
Cathy Sullivan

เราสามารถเพิ่มไฟล์ global.asax สำหรับฟอร์ม windows ได้หรือไม่?
Jeeva Jsb

@JeevaJsb ไม่มี. เนื้อหาของ global.asax คือเหตุการณ์ (โดยทั่วไป) ที่ถูกทริกเกอร์โดยวงจรชีวิตของแอปพลิเคชัน IIS / ASP.net ดังนั้นจึงไม่มีอะไรที่จะทริกเกอร์โค้ดในแอปพลิเคชัน WinForms
Rob

ฉันสงสัยว่าทำไมพวกเขาไม่ได้มีเพียงรหัสที่สืบทอดจากคลาส HttpApplication และไม่ต้องการไฟล์ asax global.asax.cs มีทุกสิ่งดังนั้นเหตุใดจึงต้องมีไฟล์ asax เฉพาะที่มีเฉพาะ <% @ Application Codebehind = "Global.asax.cs" Inherits = "XXXXX" Language = "C #"%>
ง่าย เพื่อน

69

อธิบายเหตุการณ์ Global asax

Application_Init: เริ่มทำงานเมื่อแอปพลิเคชันเริ่มต้นหรือถูกเรียกครั้งแรก เรียกใช้สำหรับอินสแตนซ์อ็อบเจ็กต์ HttpApplication ทั้งหมด

Application_Disposed: เริ่มทำงานก่อนที่แอปพลิเคชันจะถูกทำลาย นี่คือตำแหน่งที่เหมาะสำหรับการล้างทรัพยากรที่ใช้ก่อนหน้านี้

Application_Error: เริ่มทำงานเมื่อพบข้อยกเว้นที่ไม่สามารถจัดการได้ภายในแอ็พพลิเคชัน

Application_Start: เริ่มทำงานเมื่ออินสแตนซ์แรกของคลาส HttpApplication ถูกสร้างขึ้น ช่วยให้คุณสร้างวัตถุที่สามารถเข้าถึงได้โดยอินสแตนซ์ HttpApplication ทั้งหมด

Application_End: เริ่มทำงานเมื่ออินสแตนซ์สุดท้ายของคลาส HttpApplication ถูกทำลาย จะเริ่มทำงานเพียงครั้งเดียวในช่วงอายุของแอปพลิเคชัน

Application_BeginRequest: เริ่มทำงานเมื่อได้รับคำขอแอปพลิเคชัน เป็นเหตุการณ์แรกที่เกิดขึ้นสำหรับคำขอซึ่งมักจะเป็นคำขอหน้าเว็บ (URL) ที่ผู้ใช้ป้อน

Application_EndRequest:เหตุการณ์สุดท้ายที่เริ่มทำงานสำหรับคำขอแอปพลิเคชัน

Application_PreRequestHandlerExecute:เริ่มทำงานก่อนที่เฟรมเวิร์กเพจ ASP.NET จะเริ่มเรียกใช้ตัวจัดการเหตุการณ์เช่นเพจหรือบริการบนเว็บ

Application_PostRequestHandlerExecute: เริ่มทำงานเมื่อเฟรมเวิร์กเพจ ASP.NET เสร็จสิ้นการเรียกใช้ตัวจัดการเหตุการณ์

Applcation_PreSendRequestHeaders: เริ่มทำงานก่อนเฟรมเวิร์กเพจ ASP.NET ส่งส่วนหัว HTTP ไปยังไคลเอนต์ที่ร้องขอ (เบราว์เซอร์)

Application_PreSendContent: เริ่มทำงานก่อนเฟรมเวิร์กเพจ ASP.NET ส่งเนื้อหาไปยังไคลเอนต์ที่ร้องขอ (เบราว์เซอร์)

Application_AcquireRequestState: เริ่มทำงานเมื่อเฟรมเวิร์กเพจ ASP.NET ได้รับสถานะปัจจุบัน (สถานะเซสชัน) ที่เกี่ยวข้องกับคำร้องขอปัจจุบัน

Application_ReleaseRequestState: เริ่มทำงานเมื่อเฟรมเวิร์กเพจ ASP.NET เสร็จสิ้นการดำเนินการของตัวจัดการเหตุการณ์ทั้งหมด ส่งผลให้โมดูลสถานะทั้งหมดบันทึกข้อมูลสถานะปัจจุบัน

Application_ResolveRequestCache: เริ่มทำงานเมื่อเฟรมเวิร์กเพจ ASP.NET เสร็จสิ้นการร้องขอการอนุญาต ช่วยให้โมดูลการแคชสามารถตอบสนองคำขอจากแคชได้ดังนั้นจึงข้ามการดำเนินการของตัวจัดการ

Application_UpdateRequestCache: เริ่มทำงานเมื่อเฟรมเวิร์กเพจ ASP.NET เสร็จสิ้นการดำเนินการตัวจัดการเพื่อให้โมดูลการแคชเก็บการตอบกลับเพื่อใช้จัดการกับคำร้องขอที่ตามมา

Application_AuthenticateRequest: เริ่มทำงานเมื่อโมดูลความปลอดภัยได้กำหนดข้อมูลประจำตัวของผู้ใช้ปัจจุบันว่าถูกต้อง ณ จุดนี้ข้อมูลรับรองของผู้ใช้ได้รับการตรวจสอบแล้ว

Application_AuthorizeRequest: เริ่มทำงานเมื่อโมดูลความปลอดภัยตรวจสอบแล้วว่าผู้ใช้สามารถเข้าถึงทรัพยากรได้

Session_Start: เริ่มทำงานเมื่อผู้ใช้ใหม่เข้าเยี่ยมชมเว็บไซต์ของแอปพลิเคชัน

Session_End: เริ่มทำงานเมื่อเซสชันของผู้ใช้หมดเวลาสิ้นสุดหรือออกจากเว็บไซต์แอปพลิเคชัน


11

ไฟล์ Global.asax หรือที่เรียกว่าไฟล์แอ็พพลิเคชัน ASP.NET เป็นไฟล์ทางเลือกที่มีรหัสสำหรับตอบสนองต่อเหตุการณ์ระดับแอปพลิเคชันและระดับเซสชันที่ยกโดย ASP.NET หรือโดยโมดูล HTTP

http://msdn.microsoft.com/en-us/library/2027ewzw.aspx


6

Global.asaxคือไฟล์แอปพลิเคชัน asp.net

เป็นไฟล์ทางเลือกที่จัดการเหตุการณ์ที่ยกขึ้นโดย ASP.NET หรือโดย HttpModules ส่วนใหญ่ใช้สำหรับแอปพลิเคชันและเหตุการณ์เริ่มต้น / สิ้นสุดเซสชันและสำหรับการจัดการข้อผิดพลาดทั่วโลก

เมื่อใช้งานแล้วควรอยู่ในรูทของเว็บไซต์


4

ไดเร็กทอรีรากของเว็บแอ็พพลิเคชันมีความสำคัญเป็นพิเศษและสามารถแสดงเนื้อหาบางอย่างในโฟลเดอร์นั้นได้ สามารถมีไฟล์พิเศษที่เรียกว่า“ Global.asax” ASP.Net framework ใช้เนื้อหาใน global.asax และสร้างคลาสที่รันไทม์ซึ่งสืบทอดมาจาก HttpApplication ในช่วงอายุการใช้งานของแอปพลิเคชัน ASP.NET จะดูแลกลุ่มของอินสแตนซ์ HttpApplication ที่ได้รับ Global.asax เมื่อแอปพลิเคชันได้รับคำร้องขอ http เฟรมเวิร์กเพจ ASP.Net จะกำหนดหนึ่งในอินสแตนซ์เหล่านี้เพื่อประมวลผลคำขอนั้น อินสแตนซ์นั้นมีหน้าที่ในการจัดการตลอดอายุการใช้งานของคำขอที่ถูกกำหนดให้และอินสแตนซ์จะสามารถใช้ซ้ำได้ก็ต่อเมื่อคำขอเสร็จสมบูรณ์เมื่อส่งคืนไปยังพูล ไม่สามารถใช้สมาชิกอินสแตนซ์ใน Global.asax เพื่อแชร์ข้อมูลข้ามคำขอ แต่สามารถเป็นสมาชิกแบบคงที่ได้ ทั่วโลก


1

Global.asax สามารถใช้เพื่อจัดการกับเหตุการณ์ที่เกิดขึ้นจากแอปพลิเคชัน ลิงค์นี้ให้คำอธิบายที่ดี: http://aspalliance.com/1114

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.