เราจะใช้ global.asax ใน asp.net ได้อย่างไร? แล้วนั่นคืออะไร?
เราจะใช้ global.asax ใน asp.net ได้อย่างไร? แล้วนั่นคืออะไร?
คำตอบ:
MSDN มีโครงร่างวัตถุประสงค์ของไฟล์ global.asax
global.asax ได้อย่างมีประสิทธิภาพช่วยให้คุณสามารถเขียนโค้ดที่ทำงานเพื่อตอบสนองต่อเหตุการณ์ "ระดับระบบ" เช่นการเริ่มต้นแอปพลิเคชันการสิ้นสุดเซสชันข้อผิดพลาดของแอปพลิเคชันที่เกิดขึ้นโดยไม่ต้องพยายามบีบแตรรหัสนั้นลงในแต่ละรายการ หน้าเว็บไซต์ของคุณ
คุณสามารถใช้ได้โดยเลือกเพิ่ม> รายการใหม่> Global Application Class ใน Visual Studio เมื่อคุณเพิ่มไฟล์แล้วคุณสามารถเพิ่มโค้ดภายใต้เหตุการณ์ใด ๆ ที่อยู่ในรายการ (และสร้างขึ้นโดยค่าเริ่มต้นอย่างน้อยใน Visual Studio 2008):
มีเหตุการณ์อื่น ๆ ที่คุณสามารถเชื่อมโยงได้เช่น "LogRequest"
อธิบายเหตุการณ์ 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: เริ่มทำงานเมื่อเซสชันของผู้ใช้หมดเวลาสิ้นสุดหรือออกจากเว็บไซต์แอปพลิเคชัน
ไฟล์ Global.asax หรือที่เรียกว่าไฟล์แอ็พพลิเคชัน ASP.NET เป็นไฟล์ทางเลือกที่มีรหัสสำหรับตอบสนองต่อเหตุการณ์ระดับแอปพลิเคชันและระดับเซสชันที่ยกโดย ASP.NET หรือโดยโมดูล HTTP
Global.asaxคือไฟล์แอปพลิเคชัน asp.net
เป็นไฟล์ทางเลือกที่จัดการเหตุการณ์ที่ยกขึ้นโดย ASP.NET หรือโดย HttpModules ส่วนใหญ่ใช้สำหรับแอปพลิเคชันและเหตุการณ์เริ่มต้น / สิ้นสุดเซสชันและสำหรับการจัดการข้อผิดพลาดทั่วโลก
เมื่อใช้งานแล้วควรอยู่ในรูทของเว็บไซต์
ไดเร็กทอรีรากของเว็บแอ็พพลิเคชันมีความสำคัญเป็นพิเศษและสามารถแสดงเนื้อหาบางอย่างในโฟลเดอร์นั้นได้ สามารถมีไฟล์พิเศษที่เรียกว่า“ Global.asax” ASP.Net framework ใช้เนื้อหาใน global.asax และสร้างคลาสที่รันไทม์ซึ่งสืบทอดมาจาก HttpApplication ในช่วงอายุการใช้งานของแอปพลิเคชัน ASP.NET จะดูแลกลุ่มของอินสแตนซ์ HttpApplication ที่ได้รับ Global.asax เมื่อแอปพลิเคชันได้รับคำร้องขอ http เฟรมเวิร์กเพจ ASP.Net จะกำหนดหนึ่งในอินสแตนซ์เหล่านี้เพื่อประมวลผลคำขอนั้น อินสแตนซ์นั้นมีหน้าที่ในการจัดการตลอดอายุการใช้งานของคำขอที่ถูกกำหนดให้และอินสแตนซ์จะสามารถใช้ซ้ำได้ก็ต่อเมื่อคำขอเสร็จสมบูรณ์เมื่อส่งคืนไปยังพูล ไม่สามารถใช้สมาชิกอินสแตนซ์ใน Global.asax เพื่อแชร์ข้อมูลข้ามคำขอ แต่สามารถเป็นสมาชิกแบบคงที่ได้ ทั่วโลก
Global.asax สามารถใช้เพื่อจัดการกับเหตุการณ์ที่เกิดขึ้นจากแอปพลิเคชัน ลิงค์นี้ให้คำอธิบายที่ดี: http://aspalliance.com/1114