ASP.NET เป็นแพลตฟอร์มที่ทรงพลังมากสำหรับการสร้างเว็บแอปพลิเคชัน มันให้ความยืดหยุ่นและความสามารถที่ยอดเยี่ยม เพื่อให้คุณสามารถใช้มันเพื่อสร้างแอปพลิเคชันเว็บทุกประเภท
คนส่วนใหญ่คุ้นเคยเฉพาะกับเฟรมเวิร์กระดับสูง เช่น WebForms และ WebServices ซึ่งอยู่ด้านบนสุดของลำดับชั้น ASP.NET
ข้อมูลในบทความนี้รวบรวมและรวบรวมจากเอกสารสาธารณะต่างๆ ของ Microsoft โดยการเปรียบเทียบกระบวนการประมวลผลคำขอของ IIS, IIS5, IIS6 และ IIS7 รุ่นที่สาม เราจะคุ้นเคยกับกลไกพื้นฐานของ ASP.NET และทำความเข้าใจวิธีการ คำขอได้รับการประมวลผลจากเว็บ เซิร์ฟเวอร์สื่อสารกับรันไทม์ ASP.NET โดยการทำความเข้าใจกลไกพื้นฐาน เราจะมีความเข้าใจ ASP.net อย่างลึกซึ้งยิ่งขึ้น
กระบวนการประมวลผลคำขอ ASP.net ใน IIS 5คุณลักษณะเด่นของ IIS 5.x คือการแยกเว็บเซิร์ฟเวอร์และแอปพลิเคชัน ASP.NET จริง เนื่องจากเป็นเว็บเซิร์ฟเวอร์ IIS จึงทำงานบนกระบวนการที่เรียกว่า InetInfo.exe ซึ่งเป็น Native Executive และไม่ใช่โปรแกรมที่ได้รับการจัดการ กระบวนการเริ่มต้นแล้ว ดังนั้นนี่คือสภาพแวดล้อมที่มีการจัดการ
ISAPI: หมายถึงแอปพลิเคชันที่สามารถจัดการส่วนต่อท้ายต่างๆ ISAPI เป็นตัวย่อของคำต่อไปนี้: Internet Server Application Programe Interface, Internet Server Application Programming Interface
คุณลักษณะของโหมด IIS 5:1. ขั้นแรก สามารถเรียกใช้กระบวนการ aspnet_wp ได้เพียงกระบวนการเดียวบนโฮสต์เดียวกันในเวลาเดียวกัน เดียวกันในกระบวนการของผู้ปฏิบัติงาน การแยกระหว่างแอปพลิเคชันจะขึ้นอยู่กับโดเมนแอปพลิเคชัน ไม่ใช่กระบวนการ
2. ประการที่สอง ASP.NET ISAPI ไม่เพียงแต่รับผิดชอบในการสร้างกระบวนการ aspnet_wp Worker เท่านั้น แต่ยังรับผิดชอบในการตรวจสอบกระบวนการด้วย หากตรวจพบว่าประสิทธิภาพของ aspnet_wp ลดลงถึงขีดจำกัดล่างที่กำหนดไว้ ASP.NET ISAPI จะรับผิดชอบ เพื่อยุติกระบวนการ เมื่อ aspnet_wp สิ้นสุดลง คำขอที่ตามมาจะทำให้ ASP.NET ISAPI สร้างกระบวนการของผู้ปฏิบัติงาน aspnet_wp ใหม่อีกครั้ง
3. สุดท้ายนี้ เนื่องจาก IIS และ Application ทำงานในกระบวนการของตัวเอง การสื่อสารระหว่างกันจึงต้องใช้กลไกการสื่อสารเฉพาะ โดยพื้นฐานแล้ว การสื่อสารระหว่างกระบวนการ InetInfo ที่ IIS ตั้งอยู่และกระบวนการของผู้ปฏิบัติงานคือการสื่อสารระหว่างกระบวนการที่แตกต่างกันบนเครื่องเดียวกัน (การสื่อสารระหว่างกระบวนการภายในเครื่อง) สำหรับการพิจารณาประสิทธิภาพ กลไกการสื่อสารที่ยึดตามเนมไปป์จะถูกใช้ระหว่างกระบวนการเหล่านั้น การสื่อสารระหว่าง ASP.NET ISAPI และกระบวนการของผู้ปฏิบัติงานถูกนำมาใช้ผ่านชุดของไปป์ระหว่างกัน นอกจากนี้ เพื่อเหตุผลด้านประสิทธิภาพการทำงาน ASP.NET ISAPI จะส่งคำขอไปยังกระบวนการของผู้ปฏิบัติงานในลักษณะอะซิงโครนัสและรับการตอบสนอง แต่กระบวนการของผู้ปฏิบัติงานได้รับตัวแปรบนเซิร์ฟเวอร์บางตัวจาก ASP.NET ISAPI ในลักษณะซิงโครนัส
กระบวนการประมวลผลคำขอ ASP.net ของ IIS6IIS 5.x มอนิเตอร์คำขอผ่าน InetInfo.exe และกระจายคำขอไปยังกระบวนการทำงาน กล่าวอีกนัยหนึ่ง การตรวจสอบและการกระจายคำขอใน IIS 5 : http.sys เป็นผู้รับผิดชอบ
หมายเหตุ: เพื่อป้องกันไม่ให้แอปพลิเคชันของผู้ใช้เข้าถึงหรือแก้ไขข้อมูลระบบปฏิบัติการที่สำคัญ Windows มีโหมดการเข้าถึงโปรเซสเซอร์สองโหมด: โหมดผู้ใช้และโหมดเคอร์เนล โดยทั่วไป โปรแกรมผู้ใช้จะทำงานในโหมดผู้ใช้ ในขณะที่รหัสระบบปฏิบัติการทำงานในโหมดเคอร์เนล รหัสของโหมดเคอร์เนลอนุญาตให้เข้าถึงหน่วยความจำระบบทั้งหมดและคำสั่ง CPU ทั้งหมด
ในโหมดผู้ใช้ http.sys ได้รับการร้องขอ http ที่ใช้ aspx จากนั้นจะตรวจสอบว่าแอปพลิเคชันใดที่ยึดตามคำขอเป็นของตาม Metabase ใน IIS หากไม่มีกลุ่มแอปพลิเคชันอยู่ ให้สร้างขึ้นใหม่ มิฉะนั้น คำขอจะถูกส่งไปยังคิวที่สอดคล้องกับกลุ่มแอปพลิเคชันโดยตรง
แต่ละกลุ่มแอปพลิเคชันสอดคล้องกับกระบวนการของผู้ปฏิบัติงาน: w3wp.exe ซึ่งไม่ต้องสงสัยเลยว่าทำงานในโหมดผู้ใช้ การแมปของกลุ่มแอปพลิเคชันและกระบวนการของผู้ปฏิบัติงานจะคงอยู่ใน IIS Metabase จากการแมปดังกล่าว WAS (บริการการจัดการเว็บ) จะส่งคำขอที่มีอยู่ใน Application Pool Queue ไปยังกระบวนการของผู้ปฏิบัติงานที่เกี่ยวข้อง (หากไม่ใช่ ให้สร้างกระบวนการดังกล่าว) เมื่อเตรียมใช้งานกระบวนการของผู้ปฏิบัติงาน ASP.NET ISAPI จะถูกโหลด และ ASP.NET ISAPI จะโหลด CLR กระบวนการสุดท้ายจะเหมือนกับ IIS 5.x: สร้างโดเมนแอปพลิเคชันสำหรับแอปพลิเคชันผ่านวิธีการสร้างของ AppManagerAppDomainFactory ประมวลผลคำขอผ่าน ProcessRequest ของ ISAPIRuntime จากนั้นป้อนกระบวนการลงใน ASP.NET Http Runtime Pipeline
กระบวนการประมวลผลคำขอ ASP.net ของ IIS 7