ตอนนี้ฉันมีส่วนร่วมในการพัฒนาแบบสามเลเยอร์โดยใช้ ASP และ VB6.0 แต่ตอนนี้ฉันกำลังดิ้นรนเพื่อค้นหาวิธีที่เหมาะสมในการดีบักไฟล์ DLL ที่ฉันเขียน และประสิทธิภาพค่อนข้างต่ำ
ฉันใช้หลายวิธี:
1. เลือกถอนการติดตั้งใน IIS จากนั้นคอมไพล์ใหม่ด้วย VB เพื่อเขียนทับ DLL ดั้งเดิม
2. เลือกไซต์ที่คุณกำลังแก้ไขจุดบกพร่องใน IIS หยุดไซต์ จากนั้นคอมไพล์และเขียนทับ จากนั้นเริ่มไซต์ จากนั้นรีเฟรชเพจใน IE
3. ดำเนินการชื่อไฟล์ Regsvr32.exe บนบรรทัดคำสั่งแล้วคอมไพล์ เขียนทับ และรีเฟรช
อย่างไรก็ตาม วิธีการข้างต้นไม่ได้ผลเสมอไป เมื่อฉันใช้ Frontpage เพื่อสร้างเพจ ASP แต่เมื่อใช้ InterDev โดยจะรายงานเสมอว่าไฟล์ DLL ถูกล็อค ไม่สามารถเขียนทับข้อผิดพลาดได้ บางครั้งการปิด InterDev (หรือเพียงแค่ปิดไฟล์ทั้งหมดที่กำลังแก้ไข) จะได้ผล แต่ก็ไม่เสมอไป
ฉันต้องการใช้ InterDev เพื่อการพัฒนาซึ่งสะดวกกว่า แต่หาวิธีที่ดีกว่านี้ไม่ได้
ปัญหานี้กวนใจผมมานาน ผมว่าทุกคนที่พัฒนา Component คงจะงงกับเรื่องนี้
.--------------------------------- --- --------------------------------
เมื่อบ่ายนี้ผมลองใช้วิธีต่อไปนี้ ไม่รู้ว่าจะทำให้ทุกคนหัวเราะหรือเปล่า แต่ผมแก้ปัญหาได้จริงและรู้สึกดีกับตัวเองตลอดบ่ายครับ ดังต่อไปนี้:
1. ติดตั้ง .NET แน่นอนว่าวิธีนี้ใช้ทรัพยากรระบบมาก (ต่อมาผมพบว่ามันนำไปใช้งานได้ทั้ง frontpage และ interdev ครับ 555 ไม่ต้องบ่น ผมติดตั้ง .net เพราะคำพูด แต่กลับพบว่ามันมีประโยชน์น้อยแต่ใช้แล้วหลงรักเลย กับมัน)
2. สร้างโฟลเดอร์เพื่อจัดเก็บ DLL จากนั้นส่วนที่ "ยอดเยี่ยม" ที่สุดของเราจะปรากฏขึ้น: สร้างโฟลเดอร์ย่อยว่างหลายโฟลเดอร์ภายใต้โฟลเดอร์นี้ และตั้งชื่อโดยเริ่มจาก 01 เป็นค่าที่คุณต้องการ
3. เริ่มตัวจัดการ IIS
4. เปิดโครงการของคุณใน VB6
5. ตอนนี้ถ้าคุณต้องการแก้ไขข้อบกพร่อง คุณสามารถคอมไพล์ได้โดยตรง จากนั้นระบุโฟลเดอร์ที่สร้างในขั้นตอนที่สองโดยพลการ ฉันคิดว่าควรเริ่มจาก 01 ดีกว่า
รีเฟรชเพจ ASP ที่คุณใช้สำหรับการดีบัก คุณเห็นหรือไม่ เนื้อหานี้เป็นไฟล์ DLL ใหม่ที่คุณเขียนไว้แล้ว
ข้อมูลข้างต้นเป็นเพียงการดีบักครั้งแรกหลังจากการบูท ฉันพบข้อผิดพลาดมากมายในระหว่างกระบวนการแก้ไขข้อบกพร่อง ฉันมักจะประมาทเลินเล่อหรือไม่? ฮ่าๆ หวังว่าคงไม่เป็นแบบนี้นะ :)
ตอนนี้ฉันต้องแก้ไข DLL หลังจากการแก้ไขเสร็จสิ้น ให้คอมไพล์ใหม่ คุณจะพบว่าคุณไม่สามารถเขียนทับ DLL ได้ในขณะนี้ เนื่องจากคุณได้เรียกส่วนประกอบนี้ในเพจแล้ว และมันถูกวางไว้ในหน่วยความจำและกำลังเขียน -ป้องกัน คุณต้องหยุดไซต์ของคุณในตัวจัดการ IIS หากคุณใช้ .net คุณจะพบว่าสิ่งนี้เป็นไปได้ แต่สภาพแวดล้อมการพัฒนาอื่นๆ อาจไม่เหมือนกับที่คุณคิด ตอนนี้ คุณตั้งค่าในขั้นตอนที่สองแล้ว โฟลเดอร์เหล่านั้นจะ ทำงาน ค้นหาหนึ่งในนั้น (ควรเป็น 02...) แล้วใส่ DLL ใหม่ที่นี่ จากนั้นเริ่มไซต์ (อย่าปล่อยให้รีสตาร์ท มันช้าเกินไป วิธีที่ง่ายที่สุดในการดำเนินการตามขั้นตอนข้างต้นคือเลือกไซต์ของคุณใน IIS กด █ ที่มุมด้านบน จากนั้น ▼) (ฉันไม่พบ ▼ ทำตามได้อย่างเดียว ▼
แล้วเข็ม
ชั่วโมงหมุน 30 องศาเพื่ออ่านค่า ^_^) ?
ปัญหาได้รับการแก้ไขแล้วหรือยัง?
ฉันแนะนำให้ใช้ .net เพราะคุณไม่จำเป็นต้องสร้างการอ้างอิงเช่น interdev คุณเพียงแค่ต้องเขียนเพจด้วยส่วนขยาย ASP โดยตรง จากนั้นใช้เมธอด server.createobject("") เพื่อรับทุกอ็อบเจ็กต์ ในโค้ด มันจะแสดงวิธีการและคุณสมบัติของคลาสใน DLL ล่าสุดที่คุณเพิ่งรวบรวมโดยอัตโนมัติ
หากคุณไม่ต้องการใช้ Codeinsight ฉันคิดว่าหน้าแรกก็เป็นเครื่องมือที่ดีเช่นกัน
วิธีการของฉันโง่หรือเปล่า?
ฉันไม่ได้ใช้ VB.net หรือ C# เพราะงานปัจจุบันของฉันคือการห่อหุ้มโค้ดแทนที่จะสร้างโปรเจ็กต์ใหม่ เมื่อพิจารณาถึงความแตกต่างทางไวยากรณ์ระหว่าง vbscript และ .net ฉันยังคงเลือกวิธีโง่ ๆ นี้ และฉันคิดว่าการเขียน DLL ใน VB อาจจะดีกว่า จะดีกว่าไหม?