แนะนำ: การรวบรวมข้อผิดพลาด ASP การรวบรวมข้อผิดพลาดของ ASP มีประโยชน์สำหรับผู้เริ่มต้นและบางทีผู้เชี่ยวชาญอาจลืมมันไป การรวบรวมข้อผิดพลาด ASP Microsoft VBScript ภาษา*ข้อผิดพลาด (0x800A03E9)-> หน่วยความจำไม่เพียงพอ Microsoft VBScript ภาษา*ข้อผิดพลาด (0x800A03EA)-> คำพูด*ข้อผิดพลาด Microsoft VBScript ภาษา*ข้อผิดพลาด (0x800A03EA)-> คำพูด*
คำขอ ASP จะเริ่มต้นโดยวัตถุ WAM วัตถุ WAM จะส่งไปยัง ASP-Runtime ASP-Runtime ตอบกลับโดยการสร้างวัตถุหน้าภายในวัตถุ WAM เป็นวัตถุเธรดฟรี เมื่อเรียกส่วนขยาย ISAPI เช่น ASP.DLL จะใช้เธรดของโมเดล MTA ที่จัดสรรโดยพูลเธรดที่ดูแลโดย IIS-Runtime
ปัญหาที่ยากลำบากเมื่อสร้างส่วนขยาย ISAPI คือวิธีจัดการกับเธรดพร้อมกันและการซิงโครไนซ์ที่เกิดจากพูลเธรด MTA นี้ ASP-Runtime ทำให้ปัญหาง่ายขึ้นโดยการเปลี่ยนคำขอ ASP แต่ละตัวเป็นหน่วยเธรดเดียว (STA) ก่อนที่จะเรียกใช้สคริปต์ ASP ASP-RUNTIME จัดการสระว่ายน้ำด้ายสแตนด์อโลน STA (ในพื้นหลัง ASP ทำสิ่งนี้จริงโดยใช้พูลด้าย COM) นักออกแบบ ASP สร้างรูปแบบการรวมเธรดนี้เพื่อให้ความสมดุลที่ดีที่สุดระหว่างการเกิดขึ้นพร้อมกันและการใช้ทรัพยากรในขณะที่ไม่จำเป็นต้องใช้โปรแกรมเมอร์เพื่อให้เกิดการซิงโครไนซ์
ASP-Runtime สลับแต่ละคำขอจากเธรด MTA เป็นเธรด STA ได้อย่างไร กลไกการจัดตารางเวลา ASP-Runtime ทำให้แต่ละคำขอเป็นคิวการร้องขอส่วนกลาง เธรด STA ในพูลเธรดที่จัดการโดย ASP ตรวจสอบคิวและประมวลผลคำขอในลักษณะแรกในครั้งแรก โปรดทราบว่าขนาดของพูลเธรดนี้จะเปลี่ยนไปอย่างไดนามิก ASP-Runtime สร้างเธรดเพิ่มเติมในระหว่างการสื่อสารสูงสุดและปล่อยเธรดเมื่อมีการสื่อสารน้อยลง
การเปลี่ยนไปใช้เธรด STA ได้อย่างมีประสิทธิภาพช่วยแก้ปัญหาพร้อมกันได้อย่างมีประสิทธิภาพ แต่สิ่งนี้ก็มีผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพ ISAPI ขยาย DLL ที่ประมวลผลในฝูงบินเธรด MTA แยกต่างหากให้เวลาตอบสนองที่เร็วขึ้น
IIS มีวิธีการตั้งค่าขนาดสูงสุดของพูลเธรด STA และคิวขอ ขนาดของพูลเธรดถูกควบคุมโดยคีย์หลัก AspprocessorthreadMax ใน Metadatabase IIS การตั้งค่าเริ่มต้นสำหรับคีย์หลักนี้คือ 25 ต่อกระบวนการต่อโปรเซสเซอร์ (ความคิดเห็น: เป็นการดีที่สุดที่จะค้นหาเอกสารที่เกี่ยวข้องของ Microsoft เพื่อพิสูจน์หมายเลขนี้บางคนบอกว่าหมายเลขนี้คือ 10 ต่อ CPU) กล่าวคือในคอมพิวเตอร์สี่ตัวประมวลผลแต่ละกระบวนการที่กระบวนการ ASP สามารถมีเธรดเสริมได้สูงสุด 100 เธรด ควรหลีกเลี่ยงปัญหาที่เกี่ยวข้องกับการปรับแต่งพูลเธรดแล้วควรหลีกเลี่ยงการเปลี่ยนค่าคีย์นี้ โปรดทราบว่าคุณไม่สามารถใช้ Internet Server Manager เพื่อเปลี่ยนการตั้งค่านี้ได้ จะต้องมีการแก้ไขโดยใช้สคริปต์การจัดการหรือแอปพลิเคชัน VB
IIS ตั้งค่าความจุสูงสุดสำหรับคิวคำขอ ASP โดยค่าเริ่มต้น ASP-Runtime อนุญาตให้คิวถือคำขอได้สูงสุด 3,000 คำขอ (เอกสาร Microsoft อื่นระบุว่าคิวนี้สามารถเก็บคำขอได้ 500 คำขอเท่านั้น) เมื่อเกินกว่าคำขอ ASP ในภายหลังจะถูกปฏิเสธและข้อความแสดงข้อผิดพลาดจะถูกส่งกลับเป็นเซิร์ฟเวอร์ไม่ว่าง
คีย์หลักของ AspprocessorthreadMax และคีย์หลัก AsprequestqueUemax สามารถตั้งโปรแกรมได้โดยใช้วัตถุการจัดการ IIS และ ADSI ตัวอย่างเช่นในโครงการ EXE มาตรฐานโปรดดูที่ไลบรารีประเภท DS ที่ใช้งานอยู่และเขียนรหัสต่อไปนี้:
หรี่
ตั้งค่า mywebserver = getOject (iis: // localhost/w3svc)
MyWebserver.put AspprocessorthreadMax, 30
myWebserver.put asprequestqueUemax, 1500
mywebserver.setinfo
นี่คือบทสรุปโดยย่อว่า ASP เธรดพูลทำงานอย่างไรใน IIS ที่ติดตั้งโดยค่าเริ่มต้นในคอมพิวเตอร์โปรเซสเซอร์เครื่องเดียว พูลเธรดนี้มีเธรดตัวช่วย STA 25 ตัวสำหรับแต่ละโปรเซสเซอร์ เมื่อมีการร้องขอมาถึงจะถูกวางไว้ในคิวคำขอ ASP-RUNTIME กำหนดเวลาเธรด STA ที่ไม่ได้ใช้งานจากพูลเธรดหากมีอยู่ (โปรดทราบว่ารูปแบบนี้อนุญาตให้เธรดใด ๆ ในพูลเธรดเพื่อประมวลผลคำขอ) หากไม่มีเธรดผู้ช่วยฟรีคำขอจะถูกเพิ่มลงในคิว ตราบใดที่คิวไม่ถึงความจุสูงสุดเริ่มต้นคำขอทั้งหมดจะถูกประมวลผล
แอปพลิเคชันการเขียนโปรแกรมแบบกระจายด้วย Visual Basic 6.0 จาก Ted Pattison
แบ่งปัน: คุณสมบัติทางเทคนิคและวิธีการใช้งานของ ASP ไม่กี่ปีที่ผ่านมาช่องทางเดียวในอุตสาหกรรมสำหรับการเปิดตัวโฮมเพจแบบไดนามิกคือโมเดล CGI (อินเทอร์เฟซ GA Teway ทั่วไป) แม้ว่าโซลูชันทางเทคนิคที่ตามมาเช่น ISAPI แต่ NSAPI และ JDBC ได้รับการปรับปรุงเมื่อเทียบกับ CGI แต่โซลูชั่นเหล่านี้ยังคงวัดจากความเป็นจริงทางเทคนิคของเครือข่ายองค์กร (อินทราเน็ต)