แนะนำ: ความรู้เกี่ยวกับวัตถุข้อผิดพลาด ASP ขั้นสูงสำหรับแอปพลิเคชัน ASP ใน VBScript มีคำสั่ง onerrorresumenext ที่ทำให้สคริปต์ล่ามที่จะละเว้นข้อผิดพลาดรันไทม์และดำเนินการต่อของรหัสสคริปต์ต่อไป จากนั้นสคริปต์สามารถตรวจสอบค่าของคุณสมบัติ err.number เพื่อตรวจสอบว่าเกิดข้อผิดพลาดหรือไม่ หากเกิดข้อผิดพลาดค่าที่ไม่เป็นศูนย์จะถูกส่งคืน
4.2.3 ตัวอย่างของคำแนะนำที่มีอยู่ฝั่งเซิร์ฟเวอร์
ส่วนนี้มีหน้าตัวอย่างบางส่วนที่สามารถใช้ในการทดสอบกับข้อความที่มีอยู่ฝั่งเซิร์ฟเวอร์ต่างๆ เปิดไดเรกทอรีย่อยของหน้าเว็บตัวอย่างบทที่ 04 โดยแสดงคำสั่ง SSI และหน้าแรกวัตถุเซิร์ฟเวอร์ ASP (เช่น default.asp ในไดเรกทอรีย่อยบทที่ 04)
ตัวอย่างทั้งหมดของหนังสือเล่มนี้สามารถดาวน์โหลดได้จากเว็บไซต์ของเรา ผู้อ่านจะพบหน้าตัวอย่างทั้งหมดสำหรับส่วนที่เหลือของบทนี้ในบทที่ 04 ตัวอย่างไดเรกทอรีย่อย
1. ใช้ SSI/CGI เพื่อประมวลผลคำแนะนำ
คลิกที่ลิงค์เพื่อเข้าสู่หน้าเซิร์ฟเวอร์รวมและหน้างบ CGI ซึ่งจะเปิดหน้า SSI_CGI.STM ควรสังเกตว่าส่วนขยายไฟล์ของหน้านี้คือ. Stm ซึ่งระบุว่านี่ไม่ใช่หน้าเว็บ ASP หน้านี้ใช้คำแนะนำ SSI ทั้งหมดยกเว้นคำสั่ง #EXEC (ซึ่งจะเห็นในภายหลัง) ที่กล่าวถึงก่อนหน้านี้และแสดงวิธีการใช้งานและผลลัพธ์ของคำแนะนำดังแสดงในรูปที่ 4-4:
รูปที่ 4-4 คำแนะนำการประมวลผล SSI/CGI ที่แสดงบนหน้าเว็บตัวอย่าง
(1)#รวมคำสั่ง
จุดเริ่มต้นของหน้ารวมไฟล์ที่มี SSI แสดงเนื้อหาของไฟล์อื่นที่แยกจากกันชื่อ Intro.inc นี่คือเนื้อหาทั้งหมดของไฟล์:
โปรดทราบว่าเราต้องใช้รายการ HTML <และ> เพื่อแสดงวงเล็บมุมในหน้าเว็บ หากพวกเขาไม่ได้ทำพวกเขาไม่สามารถได้รับการปฏิบัติเป็นส่วนหนึ่งขององค์ประกอบคำอธิบายประกอบและทำให้คำแนะนำในนั้นถูกดำเนินการ
ในหน้าหลัก SSI_CGI.STM รหัสเพื่อแทรกไฟล์นี้ลงในหน้านั้นง่ายมาก:
<!-#include file = intro.inc->
(2) #Config, #FSIZE และ #FLASTMOD DIRECTIVE
ส่วนถัดไปของหน้าแสดงขนาดของไฟล์ default.asp ในไดเรกทอรีเดียวกันกับหน้าและครั้งสุดท้ายที่ได้รับการแก้ไข คำสั่ง #config ถูกใช้สามครั้งที่นี่:
·ครั้งหนึ่งคือชุดข้อความแสดงข้อผิดพลาด SSI
·ครั้งหนึ่งคือรูปแบบของวันที่และเวลา
·เมื่อตั้งค่ารูปแบบการคำนวณขนาดไฟล์
ใช้คำสั่ง #fsize และ #fiastmod เพื่อแทรกค่าลงในหน้าเว็บ:
<p> <div class = subhead> คำสั่ง SSI </div>
<!-#config errmsg = ข้อผิดพลาดในการประมวลผล SSI->
(ตั้งค่าข้อความแสดงข้อผิดพลาดในกรณีที่เกิดข้อผิดพลาด SSI) <br>
<!-#config errmsg = ข้อผิดพลาดในการประมวลผล SSI-> <p>
รายละเอียดของไฟล์ 'default.asp': <br>
<!-#config sizefmt = bytes->
(ตั้งค่า fsize เพื่อส่งคืนขนาดเป็นไบต์) <br>
<!-#config sizefmt = bytes->
<!-#fsize file = default.asp->
returns: <b> <!-#fsize file = default.asp-> bytes </b> <br>
<!-#config timefmt = %a, %b %d %y %h: %m: %s->
(ตั้งค่ารูปแบบสำหรับผลลัพธ์วันที่/เวลา) <br>
<!-#config timefmt = %a, %b %d %y %h: %m: %s->
<!-#flastmod file = default.asp->
returns: <b> <!-#flastmod file = default.asp-> </b> <p>
(3) คำสั่ง #echo
ส่วนสุดท้ายของหน้า (เท่านั้นที่สามารถมองเห็นได้บนหน้าจอ) แสดงเนื้อหาของส่วนหัว HTTP ทั้งหมดที่สามารถเข้าถึงได้โดยใช้ไดเรกทอรี #echo รหัสในแต่ละบรรทัดเหมือนกันยกเว้นว่าค่าคุณสมบัติ VAR เปลี่ยนไป รายการที่สมบูรณ์ของค่าที่อนุญาตทั้งหมดสำหรับแอตทริบิวต์ VAR จะได้รับในภาคผนวก G.
<div class = subhead> ตัวแปร http </div>
<!-#echo var = auth_type->
returns: <b> <!-#echo var = auth_type-> </b> <br>
<!-#echo var = auth_password->
returns: <b> <!-#echo var = auth_password-> </b> <br>
… ฯลฯ …
2. ใช้คำสั่ง #EXEC
คำสั่ง #EXEC นั้นใช้งานยากกว่าคำสั่ง SSI อื่น ๆ และด้วยเหตุนี้จึงถูกวางไว้อย่างอิสระในหน้าอื่น หน้าเริ่มต้นสามารถเข้าถึงได้จากวัตถุเซิร์ฟเวอร์ ASP และเมนูหลัก SSI
ในหน้านี้เลือกการใช้ลิงค์ Directive Server #ECHO Server การดำเนินการนี้เปิดหน้าคำสั่ง SSI #EXEC
หน้าเว็บ SSI #Exec Directive
นี่คือหน้าเว็บ ASP SSI_EXEC.ASP ปุ่มสองปุ่มใช้เพื่อเปิดหน้า. Stm ซึ่งดำเนินการตามที่อธิบายไว้ในไดเรกทอรี #EXEC
(1) เรียกใช้ตัวอย่างนี้บนเซิร์ฟเวอร์
ก่อนที่ตัวอย่างคำสั่ง SSI #EXEC สามารถทำงานบนเซิร์ฟเวอร์ได้จะต้องแก้ไขการกำหนดค่าบางอย่าง ก่อนอื่นคุณต้องสร้างรายการ ssienablecmdidirective (พิมพ์ DWORD) ในรีจิสทรีของเว็บเซิร์ฟเวอร์โดยมีตำแหน่งด้านล่างชื่อคีย์:
hkey_local_machine/system/currentcontrolset/services/w3svc/พารามิเตอร์
จากนั้นตั้งค่าเป็น 1
สิ่งนี้ช่วยให้สามารถใช้คำสั่ง #EXEC กับแอตทริบิวต์ CMD ได้
ประการที่สองการเข้าถึงที่ไม่ระบุชื่อจะต้องถูกห้ามสำหรับไดเรกทอรีที่มีไฟล์. Stm โดยใช้ไดเร็กทอด #EXEC ลูกค้าจะถูกบังคับให้ให้รายละเอียดของบัญชีซึ่งควรเป็นบัญชีที่มีสิทธิ์ระดับผู้ดูแลระบบ นี่เป็นข้อกำหนดสำหรับคำสั่ง NET ในการทำงานตามปกติ
เปิดใช้งานแอปพลิเคชัน Internet Services Manager และเลือกไดเรกทอรีที่มีไฟล์. Stm โดยใช้ไดเร็กทอด #EXEC (ในตัวอย่างไฟล์เหล่านี้เป็น start_cisvc.stm และ stop_cisvc.stm ในไดเรกทอรี Exec) จากนั้นเปิดกล่องโต้ตอบคุณสมบัติสำหรับไดเรกทอรีนั้น คลิกปุ่มแก้ไขในพื้นที่ควบคุมการเข้าถึงและการรับรองความถูกต้องโดยไม่ระบุชื่อในแท็บความปลอดภัยไดเรกทอรีเพื่อเปิดกล่องโต้ตอบวิธีการตรวจสอบความถูกต้อง
ไม่ได้เลือกช่องทำเครื่องหมายการเข้าถึงที่ไม่ระบุชื่อในกล่องโต้ตอบนี้ หากคุณไม่ได้ใช้ Internet Explorer เพื่อเข้าถึงหน้าให้เปิดตัวเลือกการตรวจสอบความถูกต้องพื้นฐานเพื่ออนุญาตให้เบราว์เซอร์ที่ไม่ใช่ IIE เข้าถึงหน้าโดยส่งชื่อผู้ใช้/รหัสผ่าน เมื่อตั้งค่าคำเตือนเกี่ยวกับความปลอดภัยจะปรากฏขึ้นคลิกใช่ เบราว์เซอร์จะถูกบังคับให้แสดงบัญชีและใบรับรองข้อมูลประจำตัวที่เหมาะสมเนื่องจากหน้าไม่สามารถเข้าถึงได้โดยไม่ระบุชื่อ
เพื่อที่จะเห็นผลลัพธ์ของการเริ่มต้นและการยกเลิกบริการให้เปิดบริการ MMC ปลั๊กอินและยุติบริการการจัดทำดัชนี
(2) เริ่มต้นและยุติบริการการจัดทำดัชนี
คลิกปุ่มบนหน้าเว็บตัวอย่างเพื่อเริ่มบริการการจัดทำดัชนี Microsoft
ชื่อสั้น ๆ ของบริการนี้คือ CISVC ซึ่งโดยทั่วไปเรียกว่า Microsoft Index Server และอักขระ CI ในชื่อจริงแสดงถึงตัวทำดัชนีเนื้อหา
เมื่อได้รับแจ้งให้ป้อนชื่อผู้ใช้และรหัสผ่านของบัญชีที่มีสิทธิ์ผู้ดูแลระบบบนเว็บเซิร์ฟเวอร์ เมื่อเปิดหน้า (start_cisvc.stm) คุณจะรู้สึกถึงความล่าช้าบางอย่างเนื่องจากคำสั่ง #EXEC โหลดอินสแตนซ์ของ Interpreter คำสั่ง window (cmd.exe) จากนั้นเรียกใช้คำสั่งเริ่มต้นสุทธิ เมื่อบริการเริ่มต้น (หรือหากกำลังทำงานอยู่) ส่วนที่เหลือของหน้าจะปรากฏขึ้น
อินเทอร์เฟซที่แสดงหลังจากป้อนชื่อผู้ใช้และรหัสผ่าน
รหัสสำหรับหน้านี้ง่ายมาก คุณจะเห็นได้ว่าไดเร็กทอด #EXEC มีคุณสมบัติ CMD ซึ่งตั้งค่าเป็น cmd.exe /c เริ่มต้น CISVC แบบฟอร์มมีปุ่มส่งเพื่อกลับไปที่หน้าก่อนหน้า:
<p> การประมวลผลคำสั่ง SSI: </p>
<p> <b> <!-#exec cmd = cmd.exe/c หยุด net cisvc-> </b> </p>
<!-#EXEC CMD = CMD.EXE /C STOP CISVC->
<form action = ../ssi_exec.asp>
<ประเภทอินพุต = ส่งชื่อ = cmdok value =>
กลับไปที่หน้าก่อนหน้า <p>
</form>
คุณสามารถเปิดหน้าเว็บ. Stm อื่น ๆ ได้จากหน้าก่อนหน้าเช่น stop_cisvc.stm เพื่อยกเลิกบริการอีกครั้งความแตกต่างเพียงอย่างเดียวคือใช้คำสั่ง Net Stop แทนคำสั่งเริ่มต้นสุทธิ
-
<!-#EXEC CMD = CMD.EXE /C STOP CISVC->
-
แชร์: ตัวอย่างอธิบายวิธีการใช้บันทึกการเชื่อมต่อที่ตั้งไว้ใน ASP เมื่อเราใช้ส่วนประกอบ ADO ในตัวของ ASP สำหรับการเขียนโปรแกรมฐานข้อมูลเรามักจะเปิดการเชื่อมต่อที่จุดเริ่มต้นของสคริปต์และปิดมันในตอนท้ายของสคริปต์ แต่สำหรับสคริปต์ขนาดใหญ่การเชื่อมต่อจะเปิดอีกต่อไปในกรณีส่วนใหญ่มากกว่าที่จะเปิด ดังนั้น