ก่อนอื่น เรามาพูดถึงวิธีการทำงานของ Asp.net กันก่อน
คำอธิบายเฉพาะมีดังนี้ ขั้นแรก ลูกค้าร้องขอเว็บเพจ จากนั้นบริการเว็บจะค้นหาไฟล์คำแนะนำ (.aspx) และสิ่งนี้ได้รับการจัดการโดยไลบรารีลิงก์แบบไดนามิก aspnet_isapi.dll จากนั้นโค้ด Asp.net จะถูกส่งไปยังรันไทม์ภาษาทั่วไปสำหรับการคอมไพล์ สตรีม HTML จะถูกส่งกลับไปยังเบราว์เซอร์และสั่งซื้อ ในที่สุด เบราว์เซอร์จะประมวลผล HTML และแสดงเพจ
ISAPI คืออะไร?
ในยุคเริ่มต้นของอินเทอร์เน็ต ลูกค้ามีความต้องการที่จำกัดมาก ไฟล์ .htm คือสิ่งเดียวที่พวกเขาต้องการ อย่างไรก็ตาม เมื่อเวลาผ่านไป ความต้องการของลูกค้าขยายไปเกินกว่าฟังก์ชันการทำงานที่มีอยู่ในไฟล์ .htm หรือไฟล์คงที่
นักพัฒนาจำเป็นต้องขยายหรือขยายฟังก์ชันการทำงานของเว็บเซิร์ฟเวอร์ ผู้จำหน่ายเว็บเซิร์ฟเวอร์ได้ออกแบบโซลูชันที่แตกต่างกัน แต่ทั้งหมดใช้ธีมเดียวกันในการแทรกส่วนประกอบบางอย่างลงในเว็บเซิร์ฟเวอร์ เทคโนโลยีเสริมของเว็บเซิร์ฟเวอร์ทั้งหมดช่วยให้นักพัฒนาสามารถสร้างและเสียบส่วนประกอบเพื่อปรับปรุงการทำงานของเว็บเซิร์ฟเวอร์ Microsoft เสนอ ISAPI (Internet Server API), Netscape เสนอ NSAPI (Netscape Server API) และอื่นๆ ISAPI เป็นเทคโนโลยีสำคัญที่ช่วยให้เราสามารถปรับปรุงความสามารถของเว็บเซิร์ฟเวอร์ที่เข้ากันได้กับ ISAPI (IIS คือเว็บเซิร์ฟเวอร์ที่เข้ากันได้กับ ISAPI) เราใช้ส่วนประกอบต่อไปนี้เพื่อให้บรรลุเป้าหมายนี้:
1. ส่วนขยาย ISAPI: ส่วนขยาย ISAPI ถูกนำมาใช้โดยใช้ไลบรารีลิงก์แบบไดนามิก Win32 คุณสามารถนึกถึงส่วนขยาย ISAPI เหมือนกับแอปพลิเคชันปกติ เป้าหมายการประมวลผลของส่วนขยาย ISAPI คือคำขอ http
2. ตัวกรอง ISAPI: ทุกครั้งที่ไคลเอนต์ส่งคำขอไปยังเซิร์ฟเวอร์ คำขอจะต้องผ่านตัวกรอง ไคลเอนต์ไม่จำเป็นต้องระบุตัวกรองในคำขอ แต่เพียงส่งคำขอไปยังเว็บเซิร์ฟเวอร์ และเว็บเซิร์ฟเวอร์จะส่งคำขอไปยังตัวกรองที่เกี่ยวข้อง ถัดไป ตัวกรองอาจแก้ไขคำขอ ดำเนินการเข้าสู่ระบบบางอย่าง ฯลฯ
กระบวนการประมวลผลคำขอ ASP.NET:
กระบวนการประมวลผลคำขอของ ASP.NET ขึ้นอยู่กับโมเดลไปป์ไลน์ ซึ่ง ASP.NET จะส่งคำขอ http ไปยังโมดูลทั้งหมดในไปป์ไลน์ แต่ละโมดูลได้รับการร้องขอ http และมีการควบคุมเต็มรูปแบบ โมดูลสามารถจัดการคำขอในลักษณะใดก็ได้ที่เห็นสมควร เมื่อคำขอผ่านโมดูล HTTP ทั้งหมด ในที่สุดมันก็ถูกประมวลผลโดยตัวจัดการ HTTP ตัวจัดการ HTTP ดำเนินการบางอย่างตามคำขอ และผลลัพธ์จะถูกส่งผ่านโมดูล HTTP ในไปป์ไลน์อีกครั้ง
ตัวกรอง ISAPI:
IIS เองไม่รองรับไดนามิกเพจ ซึ่งหมายความว่ารองรับเฉพาะเนื้อหาของเพจ HTML แบบคงที่เท่านั้น ตัวอย่างเช่น .asp, .aspx, .cgi, .php เป็นต้น IIS จะไม่ประมวลผลแท็กเหล่านี้ แต่จะจัดการกับแท็กเหล่านี้ เนื่องจาก ข้อความเรียบเรียงถูกส่งไปยังไคลเอนต์โดยไม่มีการประมวลผลใดๆ เพื่อที่จะแก้ไขปัญหานี้ IIS มีกลไกที่เรียกว่าตัวกรอง ISAPI ซึ่งเป็นส่วนประกอบมาตรฐาน (ส่วนประกอบ COM)
เมื่อบริการ Asp.net ลงทะเบียนกับ IIS บริการจะลงทะเบียนนามสกุลไฟล์ที่แต่ละนามสกุลสามารถจัดการลงใน IIS ได้ (เช่น: *.ascx, *.aspx เป็นต้น) หลังจากที่ส่วนขยายเริ่มต้นแล้ว จะประมวลผลไฟล์ที่ไม่สามารถประมวลผลโดย IIS ตามวิธีการที่กำหนดไว้ จากนั้นข้ามการควบคุมไปยังกระบวนการที่จัดการโค้ดโดยเฉพาะ ทำให้กระบวนการนี้เริ่มประมวลผลโค้ด สร้างโค้ด HTML มาตรฐาน และใส่ รหัสเหล่านี้รุ่นแล้วรุ่นเล่า เพิ่มลงใน Html ดั้งเดิม และสุดท้ายก็ส่งคืน Html ที่สมบูรณ์ไปยัง IIS จากนั้น IIS จะส่งเนื้อหาไปยังไคลเอนต์