ความสำเร็จของแอปพลิเคชัน ASP มักจะขึ้นอยู่กับการแลกเปลี่ยนระหว่างสถาปัตยกรรมและการออกแบบ เมื่อพิจารณาถึงเทคโนโลยี ASP ที่หลากหลายและความซับซ้อนโดยธรรมชาติของแอปพลิเคชันปัจจุบันการแลกเปลี่ยนนี้เป็นเรื่องยากมาก นี่คือการแนะนำสั้น ๆ เกี่ยวกับหลักการและการใช้ ASP ในช่องเทคโนโลยีใหม่ที่ไม่ถูกต้อง
การสร้างอนุสัญญาการตั้งชื่อและสร้างมาตรฐานโครงสร้างไดเรกทอรีสามารถช่วยให้คุณปรับปรุงความสามารถในการอ่านและการบำรุงรักษาแอปพลิเคชัน ASP ของคุณได้อย่างมาก แม้ว่าในปัจจุบันจะไม่มีมาตรฐานอย่างเป็นทางการสำหรับแอปพลิเคชัน ASP แต่นักพัฒนาหลายคนได้สร้างวิธีการทั่วไปบางอย่าง ที่นี่ฉันจะแบ่งปันวิธีทั่วไปเพิ่มเติมกับคุณ
เพราะเทคโนโลยี ASP อาศัยเครื่องยนต์สคริปต์ในการทำงานและสคริปต์มีลักษณะของการไม่เข้มงวดในประเภทการประชุมการตั้งชื่อก็คลุมเครือเช่นกัน ในภาษาที่มีประเภทที่เข้มงวดมากตัวแปรจะถูกประกาศตามประเภทจริงของพวกเขา เมื่อใช้เทคโนโลยี ASP ตัวแปรมักจะประกาศในรหัส ASP ในวิธีที่พวกเขาประมวลผลตัวแปรแทนที่จะเป็นประเภทข้อมูลจริง ตัวอย่างเช่นเมื่อใช้ "Visual Basic (R) Scripting Edition (VBScript)" แม้ว่าตัวแปร VBScript ทั้งหมดจะเป็นตัวแปรคุณจะประกาศธงที่ประสบความสำเร็จเป็น bsuccess (B สำหรับบูลีน) แทน vSuccess (V สำหรับตัวแปร)
ตารางต่อไปนี้เป็นอนุสัญญาการตั้งชื่อทั่วไป
คำนำหน้าตัวแปร:
| คำนำหน้า | ตัวแปรที่ใช้ | ตัวอย่างตัวแปร |
|---|---|---|
| b หรือ bln | บูลีน | การประสบความสำเร็จ |
| c หรือ cur | สกุลเงิน | พม่า |
| d หรือ dbl | สองเท่า | ความน่าเบื่อหน่าย |
| dt หรือ dat | วันที่และเวลา | dtdate |
| f หรือ flt | ลอย | ฟราทิโอ |
| l หรือ lng | ยาว | Lmilliseconds |
| ฉันหรือ int | จำนวนเต็ม | ทำให้เป็นคนขี้ขลาด |
| S หรือ STR | สาย | พ่น |
| A หรือ arr | อาร์เรย์ | AUSERS () |
| o หรือ obj | com วัตถุ | opipeline |
คำนำหน้าตัวแปรสำหรับวัตถุฐานข้อมูล:
| คำนำหน้า | ตัวแปรที่ใช้ | ตัวอย่างตัวแปร |
|---|---|---|
| ซีเอ็นเอ็น | การเชื่อมต่อ | cnnpubs |
| ครั้งแรก | ชุดบันทึก | Rsstauthors |
| CMD | สั่งการ | cmdemployee |
| fld | สนาม | fldlastname |
การใช้ช่วงและคำนำหน้า:
| คำนำหน้า | อธิบาย |
|---|---|
| G_ | สร้างขึ้นใน global.asa |
| M_ | สำหรับหน้า ASP หรือในไฟล์รวมอยู่ในท้องถิ่น |
| (ไม่มีคำนำหน้า) | ตัวแปรที่ไม่คงที่คำนำหน้าจะเป็นแบบท้องถิ่นของกระบวนการ |
โพสต์ในฐานความรู้ (KB) "Q110264 ข้อมูล: Microsoft Consulting Services การตั้งชื่ออนุสัญญาสำหรับ Visual Basic" (ในภาษาอังกฤษ) ให้ข้อมูลเชิงลึกเกี่ยวกับการตั้งชื่อการประชุม
ใช้โครงสร้างไดเรกทอรีที่เป็นไปได้เพื่อให้ตำแหน่งที่สอดคล้องกันสำหรับส่วนประกอบแอปพลิเคชันต่างๆของคุณ โครงสร้างไดเรกทอรีที่แท้จริงของแอปพลิเคชันของคุณขึ้นอยู่กับคุณ แต่โดยปกติแล้วจะวางรูปภาพเอกสารรวมไฟล์และส่วนประกอบในไดเรกทอรีแยกต่างหาก ต่อไปนี้เป็นตัวอย่างของโครงสร้างไดเรกทอรีแอปพลิเคชัน ASP ที่ง่าย
ตัวอย่างโครงสร้างไดเรกทอรี:
/simpleaspapp /docs /images /incless
โครงสร้างไดเรกทอรีที่ดีช่วยให้คุณสามารถเลือกใช้สิทธิ์ NTFS ได้ คุณยังสามารถใช้เส้นทางสัมพัทธ์จากภายในแอปพลิเคชัน ASP ตัวอย่างเช่นคุณสามารถใช้รหัสต่อไปนี้เพื่ออ้างอิงไฟล์รวม top.asp ในไดเรกทอรีรวมจากหน้า default.asp อยู่ในไดเรกทอรี SimpleAspApp:
./includes/top.asp
โปรดทราบว่าส่วนขยายของไฟล์รวมของฉันคือ. asp ไม่ใช่. inc สิ่งนี้ทำเพื่อเหตุผลด้านความปลอดภัยและใช้ส่วนขยาย. ASP (แทนที่จะเป็น. inc) และยังช่วยให้การเข้ารหัสสีใน Visual Interdev (R)
สำหรับเคล็ดลับและเคล็ดลับอื่น ๆ เกี่ยวกับแอปพลิเคชัน ASP ที่มีโครงสร้างดูบทความ "การประชุม ASP" (เป็นภาษาอังกฤษ)
ASP จะทำงานภายใต้บริการ เมื่อออกแบบแอปพลิเคชัน ASP คุณจะต้องเผชิญกับสภาพแวดล้อมการรักษาความปลอดภัยและปัญหาการทำเกลียวที่คุณจะไม่พบในแอปพลิเคชันเดสก์ท็อปของคุณ ในสภาพแวดล้อมเดสก์ท็อปมีเพียงการดำเนินการแบบเธรดเดี่ยวเท่านั้นที่ทำงานเป็นผู้ใช้แบบโต้ตอบมักจะได้รับการจัดการและสามารถเข้าถึงระบบเดสก์ท็อปปัจจุบัน ในบริการข้อมูลอินเทอร์เน็ต (IIS) เธรดไคลเอนต์หลายตัวในสภาพแวดล้อมผู้ใช้ที่แตกต่างกันถูกจำลองเพื่อโทรหาแอปพลิเคชันของคุณและแอปพลิเคชันของคุณ จำกัด อยู่ที่เดสก์ท็อป "ระบบ"
สิ่งนี้มีความหมายกับคุณอย่างไร? โปรดเรียนรู้โหมดความปลอดภัยของ IIS นอกจากนี้ยังเตือนคุณว่า: เพียงเพราะบางสิ่งสามารถทำงานได้อย่างถูกต้องภายใต้ Visual Basic IDE ไม่ได้หมายความว่ามันสามารถทำงานได้อย่างปลอดภัยในเทคโนโลยี ASP IDE Visual Basic ไม่ได้จำลองสภาพแวดล้อมรันไทม์อย่างแม่นยำ ข้อผิดพลาดในการออกแบบทั่วไปรวมถึงการใช้การควบคุม. OCX ที่ต้องการส่วนต่อประสานผู้ใช้ในเทคโนโลยี ASP โดยใช้ส่วนประกอบที่ไม่ปลอดภัยสำหรับเธรดและการใช้ส่วนประกอบที่ต้องใช้บริบทผู้ใช้พิเศษ หนึ่งในปัญหาที่ง่ายที่สุดที่ควรหลีกเลี่ยงคือการพยายามเข้าถึงคีย์รีจิสทรี HKEY_CURRENT_USER (HKCU) จากแอปพลิเคชัน (ตัวอย่างเช่นอย่าเรียกฟังก์ชั่น GetSetting และ Savesetting ของ Visual Basic ซึ่งขึ้นอยู่กับ HKCU) ในทำนองเดียวกันอย่าปรากฏกล่องข้อความหรือกล่องโต้ตอบอื่น ๆ ที่ทำให้ผู้ใช้ต้องโต้ตอบกับคอมพิวเตอร์มนุษย์
บทความต่อไปนี้เป็นหนังสือเบื้องต้นที่ดีเกี่ยวกับความปลอดภัยและปัญหาการตรวจสอบในเทคโนโลยี ASP:
เทคโนโลยี ASP ให้บริการการเป็นตัวแทนโดยการสร้างเอาต์พุต HTML ในระยะสั้นมันสร้างส่วนต่อประสานผู้ใช้ คุณต้องแยกตรรกะทางธุรกิจออกจากสคริปต์การเป็นตัวแทน ASP แม้ว่าคุณจะไม่ใช้ส่วนประกอบ COM เพื่อแยกตรรกะทางธุรกิจออกจากรหัส ASP อย่างน้อยก็แยกตรรกะทางธุรกิจออกเป็นฟังก์ชั่นและรวมไฟล์เพื่อปรับปรุงความสามารถในการบำรุงรักษาความสามารถในการอ่านและการใช้ซ้ำได้ นอกจากนี้คุณยังสามารถชื่นชมประโยชน์ของวิธีการออกแบบแบบแยกส่วนเมื่อต้องการการแก้ไขปัญหาและปัญหาการแยก
ฟังก์ชั่นการโทรและวิธีการภายในสคริปต์สามารถหลีกเลี่ยงการสร้างรหัสและเพิ่มโครงสร้างให้กับแอปพลิเคชัน ASP ตัวอย่างต่อไปนี้แสดงวิธีแยกลอจิกลงในการเรียกใช้เมธอดจากรหัส ASP:
lt;% main () mybizmethod () ... sub main () getData () displayData () end sub%>
หลักการนี้สามารถนำไปใช้เมื่อใช้เทคนิคที่มีฟังก์ชัน ASP นี่คือตัวอย่างของวิธีการใช้หลักการนี้เมื่อใช้ WebClass Visual Basic:
ปัญหาที่พบบ่อยคือการเปลี่ยนจากระบบเดสก์ท็อปเป็นเซิร์ฟเวอร์ นักพัฒนาหลายคนที่มีพื้นหลังระบบเดสก์ท็อปไม่เคยกังวลเกี่ยวกับปัญหาเซิร์ฟเวอร์และการแบ่งปันทรัพยากร ในแอปพลิเคชันเดสก์ท็อปแบบดั้งเดิมการเชื่อมต่อกับเซิร์ฟเวอร์เป็นกระบวนการใช้เวลานาน เพื่อปรับปรุงประสบการณ์ผู้ใช้มักจะใช้เพื่อรับทรัพยากรก่อนและชะลอการเปิดตัวทรัพยากร ตัวอย่างเช่นแอปพลิเคชันจำนวนมากจะเชื่อมต่อกับฐานข้อมูลตลอดเวลา
วิธีนี้ทำงานได้อย่างถูกต้องในแอปพลิเคชันเดสก์ท็อปแบบดั้งเดิม เหตุผลก็คือจำนวนผู้ใช้มีความชัดเจนควบคุมง่ายและแบ็กเอนด์และส่วนหน้าเชื่อมต่ออย่างใกล้ชิด อย่างไรก็ตามสำหรับเว็บแอปพลิเคชันปัจจุบันวิธีนี้ไม่สามารถทำได้อีกต่อไปเนื่องจากทรัพยากรเซิร์ฟเวอร์ที่ จำกัด จะเผชิญกับผู้ใช้มากขึ้นเรื่อย ๆ เพื่อให้แอปพลิเคชันของคุณรับมือกับการเพิ่มขึ้นของผู้ใช้คุณจะต้องได้รับทรัพยากรให้ช้าที่สุดและปล่อยทรัพยากรให้เร็วที่สุด
การแบ่งปันช่วยเพิ่มประสิทธิภาพของวิธีการนี้ ผ่านการแบ่งปันผู้ใช้หลายคนสามารถแบ่งปันทรัพยากรด้วยเวลารอขั้นต่ำและผลกระทบน้อยที่สุดต่อเซิร์ฟเวอร์ ตัวอย่างเช่นเมื่อทำงานกับฐานข้อมูลการแชร์การเชื่อมต่อ ODBC และการแบ่งปันทรัพยากร OLEDB สามารถเปิดใช้งานการเลือกการเชื่อมต่อจากกลุ่มที่ใช้ร่วมกันลดค่าใช้จ่ายของการเชื่อมต่อกับฐานข้อมูล
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแบ่งปัน ADO โปรดดู "การรวมในส่วนประกอบการเข้าถึงข้อมูล Microsoft"
แม้ว่าโปรโตคอล HTTP นั้นไร้สัญชาตินักพัฒนา ASP มักจะใช้กลไกการถือครองของรัฐในฟังก์ชั่น ASP ตัวอย่างเช่นการใช้วัตถุ แอปพลิเคชัน ที่ติดอยู่ในเทคโนโลยี ASP ทรัพยากรที่บันทึกโดยนักพัฒนาสามารถแบ่งปันได้โดยผู้ใช้ทุกคนของแอปพลิเคชัน ด้วยการใช้วัตถุ เซสชัน ในตัวของ ASP นักพัฒนาจะบันทึกทรัพยากรสำหรับผู้ใช้รายเดียวเท่านั้น
แม้ว่าดูเหมือนว่าการประหยัดข้อมูลในวัตถุ เซสชั่น ของเทคโนโลยี ASP เป็นวิธีที่สะดวกมากในการรักษาสถานะ แต่วิธีการนี้มีราคาแพงเกินไปและอาจเป็นหนึ่งในปัจจัย จำกัด ที่ใหญ่ที่สุดในการปรับขนาด ความสามารถในการปรับขนาดของแอปพลิเคชันนั้นเป็นความสามารถในการรักษาประสิทธิภาพอย่างต่อเนื่องเมื่อจำนวนผู้ใช้เพิ่มขึ้น สำหรับผู้ใช้แต่ละคนวัตถุ เซสชัน ใช้ทรัพยากรของเซิร์ฟเวอร์ก่อนที่เซสชันจะหมดเวลาหรือถูกทอดทิ้ง เซสชันยังผูกคุณเข้ากับเซิร์ฟเวอร์โดยจำกัดความสามารถในการใช้ประโยชน์จากคลัสเตอร์เว็บ โปรดอย่าใช้วัตถุ เซสชัน ASP สำหรับการจัดการสถานะให้มากที่สุด หากคุณไม่ได้ใช้เซสชันเลยคุณสามารถปิดใช้งานสถานะเซสชันของเว็บแอปพลิเคชันของคุณ (ดูเอกสาร IIS) มิฉะนั้นคุณสามารถปิดใช้งานสถานะเซสชันสำหรับแต่ละหน้าโดยใช้คำสั่งต่อไปนี้:
< %@enableSessionState = false %>
สำหรับข้อมูลง่ายๆบางอย่างคุณสามารถใช้คุกกี้ QueryString หรือโดเมนแบบฟอร์มที่ซ่อนอยู่เพื่อรักษาสถานะระหว่างคำขอ ASP จากนั้นสำหรับข้อมูลที่ซับซ้อนมากขึ้นมักจะแนะนำให้คุณใช้ฐานข้อมูล วิธีการทั่วไปคือการสร้างตัวระบุที่ไม่ซ้ำกันจากนั้นส่งไปยังลูกค้าที่ร้องขอแต่ละรายและบันทึกเป็นฟิลด์ฟอร์มที่ซ่อนอยู่ ในคำขอที่ตามมาตัวระบุที่ไม่ซ้ำกันนี้ใช้เพื่อค้นหาข้อมูลสถานะที่เกี่ยวข้องกับผู้ใช้ในฐานข้อมูล วิธีนี้ให้ความสามารถในการปรับขนาดที่สูงขึ้นและมีรหัสที่กระชับและชัดเจนยิ่งขึ้น
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้คุกกี้ QueryString และฟิลด์ฟอร์มที่ซ่อนอยู่ดู "Q175167 HOWTO: ค่าคงที่โดยไม่มีเซสชัน"
เมื่อสร้างวัตถุเทคโนโลยี ASP คุณสามารถเลือกได้
นี่คือข้อยกเว้นที่เป็นไปได้: เมื่อคุณโทรผ่านไฟร์วอลล์คุณอาจต้องโทรหา createObject แทนที่จะเป็น เซิร์ฟเวอร์ CreateObject สำหรับข้อมูลเพิ่มเติมโปรดดู "Q193230 - PRB: Server.CreateObject ล้มเหลวเมื่อวัตถุอยู่เบื้องหลังไฟร์วอลล์" (ภาษาอังกฤษ)
ตรวจสอบให้แน่ใจว่าการจัดการข้อผิดพลาดนั้นรวมอยู่ในแอปพลิเคชัน ASP ทั้งหมดของคุณ และตรวจสอบให้แน่ใจว่าคุณให้ข้อมูลการวินิจฉัยที่เป็นประโยชน์ ฉันไม่ได้พบใครบ่นว่าข้อความแสดงข้อผิดพลาดนั้นอธิบายได้มากเกินไป ตรวจสอบให้แน่ใจว่าได้รวมข้อมูลต่อไปนี้ในบันทึกข้อผิดพลาด:
เนื่องจากมันจะทำงานภายใต้ ASP คุณอาจต้องการเขียนข้อมูลนี้ไปยังไฟล์หรือบันทึกเหตุการณ์ของ NT คุณยังสามารถสร้างบันทึกเหตุการณ์แอปพลิเคชันที่บันทึกเหตุการณ์แอปพลิเคชันที่สำคัญสำหรับใช้เมื่อวินิจฉัยข้อผิดพลาดของแอปพลิเคชัน
บทความต่อไปนี้ให้ข้อมูลโดยละเอียดเกี่ยวกับเทคนิคการจัดการข้อผิดพลาด:
เบราว์เซอร์ไม่ใช่วิธีที่แน่นอนในการทดสอบมันสามารถแสดงให้คุณเห็นถึงการใช้งานที่เป็นไปได้ของแอปพลิเคชัน โปรดตั้งค่าเป้าหมายประสิทธิภาพเฉพาะสำหรับแอปพลิเคชันของคุณและใช้เครื่องมือโหลดเช่นเครื่องมือความเครียดเว็บแอปพลิเคชันสำหรับการทดสอบความเครียด คุณต้องตัดสินใจด้วยตัวเองว่าสภาพแวดล้อมของคุณสามารถยอมรับได้อย่างไรและนี่คือแนวทางทั่วไปที่จะช่วยให้คุณเริ่มกระบวนการทดสอบ:
จับคู่สภาพแวดล้อมการทดสอบกับสภาพแวดล้อมที่ใช้งานจริงและแม้แต่ไฟร์วอลล์ก็ไม่มีข้อยกเว้น ฟังดูมีราคาแพง แต่ฉันได้ยินนักพัฒนาสูญเสียงานเพราะพวกเขาไม่ได้นำไฟร์วอลล์มาพิจารณา
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบแอปพลิเคชัน ASP โดยใช้เครื่องมือความเครียดเว็บแอปพลิเคชันดู "ฉันไม่สามารถเครียดได้เพียงพอ - โหลดแอปพลิเคชัน ASP ของคุณ"
การปกป้องกระบวนการสมัครของคุณด้วยการแยกสามารถเพิ่มความมั่นคงของเซิร์ฟเวอร์ได้อย่างมาก เมื่อพูดถึงแอปพลิเคชันอินเทอร์เน็ตผลที่ตามมาของการใช้การแยกอาจแตกต่างกันอย่างมาก: หนึ่งคือความผิดพลาดของแอปพลิเคชันและอีกอันคือเซิร์ฟเวอร์ล่ม การปกป้องกระบวนการ IIS หลัก (inetinfo.exe) มักจะอยู่ในรายการลำดับความสำคัญที่สูงกว่า สิ่งนี้โดดเด่นเป็นพิเศษเมื่อคุณใช้ส่วนประกอบ
เทคนิคที่ใช้กันทั่วไปเพื่อปกป้องกระบวนการ ISS หลักคือการเปิดใช้งานเว็บแอปพลิเคชันเพื่อทำงานในพื้นที่หน่วยความจำที่เกี่ยวข้อง ใน Internet Services Manager คุณสามารถตั้งค่าตัวเลือกนี้สำหรับแต่ละเว็บ แม้ว่าทรัพยากรของระบบที่ถูกครอบงำโดยกระบวนการมาร์แชลจะมีผลกระทบเล็กน้อยต่อประสิทธิภาพ แต่ผลการป้องกันต่อแอปพลิเคชันนั้นคุ้มค่ากับค่าใช้จ่าย ภายใต้ IIS 4.0 คุณสามารถเรียกใช้แอปพลิเคชันของคุณในกระบวนการและนอกกระบวนการ (OOP) แอปพลิเคชัน OOP ทำงานในอินสแตนซ์ mtx.exe ใหม่ ภายใต้ IIS 5.0 คุณสามารถใช้ตัวเลือกการแยกอื่น ๆ ระดับการแยกสามารถตั้งค่าเป็น "ต่ำ" (แอปพลิเคชันในกระบวนการสำหรับ inetinfo.exe), "medium" (dllhost.exe อินสแตนซ์ที่แชร์) หรือ "สูง" (อินสแตนซ์ที่ไม่ใช่แชร์ของ dllhost.exe)
นอกเหนือจากการแยกเว็บแอปพลิเคชันในพื้นที่หน่วยความจำของตัวเองคุณอาจต้องการแยกส่วนประกอบที่ไม่น่าเชื่อถือ ส่วนประกอบที่ไม่ได้รับความเชื่อถือมักจะเป็นส่วนประกอบที่ไม่ผ่านเวลาทดสอบในสภาพแวดล้อมจริง คุณสามารถเรียกใช้ส่วนประกอบเหล่านี้ในแพ็คเกจเซิร์ฟเวอร์เพื่อให้พวกเขาทำงานในอินสแตนซ์ dllhost.exe ใหม่
โดยทั่วไปหากคุณต้องการใช้วิธีการปานกลางระหว่างประสิทธิภาพและการป้องกันต่อไปนี้เป็นวิธี: เรียกใช้เว็บแอปพลิเคชันในสถานะการแยก "สูง" และเรียกใช้ส่วนประกอบในแพ็คเกจห้องสมุด วิธีการนี้ช่วยลดค่าใช้จ่ายในการจัดมาร์แชตในขณะที่ให้การปกป้องที่แข็งแกร่งที่สุดระหว่างกระบวนการ
สำหรับข้อมูลเพิ่มเติมดูบทความ "ความน่าเชื่อถือของเซิร์ฟเวอร์ผ่านการแยกกระบวนการ"
ภายใต้ IIS 4.0 กลุ่มทั่วไปเริ่มต้นของ ASP คือ 10 เธรดสำหรับโปรเซสเซอร์ที่มีการจัดการ MTS แต่ละตัว ใน IIS 5.0 ค่าเริ่มต้นคือ 20 ซึ่งหมายความว่าแต่ละเธรดเป็นทรัพยากรที่มีค่าซึ่งสามารถจัดการคำขอไคลเอนต์หลายรายการได้ คุณต้องหลีกเลี่ยงวิธีการบล็อกที่อาจเกิดขึ้นเช่นการโทรฐานข้อมูลขนาดใหญ่ หากคุณมีงานทำสิ่งนี้จะป้องกันไม่ให้แอปพลิเคชัน ASP ส่งคืนการตอบกลับไปยังลูกค้าอย่างรวดเร็วให้พิจารณาใช้คุณสมบัติการเข้าคิว ตัวอย่างเช่นใน NT 4.0 สามารถใช้ MSMQ ได้ ใน Windows 2000 สามารถใช้ส่วนประกอบที่รอคิวได้
ข้อเสียเปรียบทั่วไปอย่างหนึ่งของส่วนประกอบอพาร์ทเมนต์แบบเธรดเดี่ยว (STA) ในเซสชั่นคือพวกเขาเติมวัตถุพื้นฐานที่มองเห็นในขอบเขตเซสชัน มันจะล็อคผู้ใช้ไว้ในเธรดซึ่งจะทำงานตรงกันข้ามกับวัตถุประสงค์ของการแบ่งปันกลุ่มโดยเธรด ผู้ใช้ที่มีศักยภาพจะถูกบล็อกอยู่เบื้องหลังผู้ใช้รายอื่นรอเธรดที่สร้างส่วนประกอบของพวกเขาให้ถูกต้อง คุณควรใช้วิธีอื่น ๆ ในการออกแบบส่วนประกอบไร้สัญชาติที่สามารถสร้างและทำลายได้ตามแต่ละหน้า
เคล็ดลับด่วน: ตรวจสอบให้แน่ใจว่าคุณสมบัติการดีบักสคริปต์ ASP ถูกปิดใช้งานบนเซิร์ฟเวอร์ (โดยใช้ Internet Services Manager) หากเปิดใช้งานการดีบักสคริปต์ ASP การดำเนินการของ ASP จะถูกล็อคไปยังเธรด
สำหรับข้อมูลเพิ่มเติมโปรดดูบทความต่อไปนี้:
การสร้างแอปพลิเคชัน ASP ต้องใช้ความรู้มากมาย ความท้าทายอย่างหนึ่งสำหรับแอปพลิเคชัน ASP คือขณะนี้ไม่มีกฎทั่วไป (ซึ่งเป็นส่วนหนึ่งของความสนุกด้วย) ปัญหาอีกประการหนึ่งคือนักพัฒนาหลายคนมีส่วนร่วมในการพัฒนาระบบเดสก์ท็อปก่อนที่พวกเขาจะติดต่อกับการพัฒนาอินเทอร์เน็ต ด้วยการใช้กฎข้างต้นในความพยายามในการพัฒนา ASP ของคุณคุณมีความหวังที่จะหลีกเลี่ยงข้อผิดพลาดที่มีค่าใช้จ่ายสูงและสามารถพัฒนาแอปพลิเคชัน ASP ที่ดีได้
JD Meier เกิดและเติบโตบนชายฝั่งตะวันออกของสหรัฐอเมริกา ตามคำแนะนำของ Horace Greeley เขากลายเป็นวิศวกรสนับสนุนนักพัฒนาซอฟต์แวร์โดยมุ่งเน้นไปที่ส่วนประกอบฝั่งเซิร์ฟเวอร์รวมถึงเทคโนโลยี MTS และ ASP รวมถึงแอปพลิเคชัน DNA ของ Windows
ผ่านเนื้อหาที่แนะนำโดยบรรณาธิการของช่องทางเทคโนโลยีใหม่ฉันเชื่อว่าทุกคนมีความเข้าใจที่แน่นอน หากคุณต้องการทราบเนื้อหาทางเทคนิคเพิ่มเติมโปรดดำเนินการต่อเพื่อให้ความสนใจกับช่องทางเทคโนโลยีใหม่!