HOW TO: Debug โปรแกรมทั่วไปของเกตเวย์อินเทอร์เฟซประยุกต์ทำงานระหว่าง IIS โดยใช้ Visual Studio

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 238788 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการตรวจแก้จุดบกพร่องของโปรแกรมประยุกต์อินเทอร์เฟซเกตเวย์ทั่วไป (CGI) ที่ใช้อยู่ภายใต้รายละเอียดบริการทางอินเทอร์เน็ต (IIS) โดยใช้ Visual Studio รุ่นใดก็

การตรวจแก้จุดบกพร่องโปรแกรมประยุกต์ C การแสดงผล CGI โดยใช้ Visual Studio

เมื่อต้องการตรวจแก้จุดบกพร่องโปรแกรมประยุกต์ Visual C CGI ที่ โดยใช้ Visual Studio รุ่นใด ๆ ทำตามขั้นตอนเหล่านี้:
  1. บริการการจัดการระบบ IIS ต้องมีการโต้ตอบกับเดสก์ท็อป การกำหนดค่า ดำเนินการดังต่อไปนี้:
    1. OPENแผงควบคุมและทำตามขั้นตอนเหล่านี้:
      • สำหรับ Windows NT: คลิกบริการ.
      • สำหรับ Windows 2000, Windows XP และ เซิร์ฟเวอร์.NET: คลิกเครื่องมือการดูแลระบบแล้ว คลิกบริการ.
    2. คลิกสองครั้งบริการการจัดการระบบ iis.
    3. ในการล็อกอินแท็บ การเลือกนั้นอนุญาตการบริการโต้ตอบกับเดสก์ท็อปกล่องกาเครื่องหมาย

      หมายเหตุ:บทความนี้อนุมานว่า บริการการจัดการระบบ IIS ทำงานเป็นระบบแบบท้องถิ่น
    4. หยุด และเริ่มต้นบริการการจัดการระบบ IIS
  2. ก่อนที่คุณรวมถึงแฟ้ม Windows.h รหัสต่อไปนี้ในการเพิ่ม และจากนั้น สร้าง CGI แบบรุ่นตรวจแก้จุดบกพร่อง:
    #define _WIN32_WINNT 0x0400
    					
  3. วางรหัสต่อไปนี้ในตอนต้นของ CGI แบบ:
    #ifdef _DEBUG
    char szMessage [256];
    wsprintf (szMessage, "Please attach a debugger to the process 0x%X (%s) and click OK",
          GetCurrentProcessId(), argv[0]);
    MessageBox(NULL, szMessage, "CGI Debug Time!",
          MB_OK|MB_SERVICE_NOTIFICATION);
    #endif
    					
  4. เริ่มโปรแกรมประยุกต์ CGI
  5. แนบการดีบักเกอร์ (เช่น WinDBG หรือ Visual C) CGI ประมวลผลในขณะที่กล่องข้อความจะปรากฏขึ้น
  6. เมื่อมีแนบการดีบักเกอร์ เปิดแฟ้มต้นฉบับ และการตั้งค่าจุดการหยุดพัก และคลิกตกลง.

    เมื่อปิดกล่องข้อความ กลับสู่โปรแกรม CGI และจุดหยุดพักจะถูกกด

การใช้ WinDBG

การดีบักเป็นโปรแกรมประยุกต์ CGI ด้วย WinDBG ถึงแม้ว่าคุณไม่มีการเปลี่ยนแปลงรหัสใด ๆ คุณจำเป็นต้องจะคุ้นเคยกับ WinDBG และติดตั้งเครื่องมือตรวจแก้จุดบกพร่อง คุณสามารถดาวน์โหลดเครื่องมือตรวจแก้จุดบกพร่องจากเว็บไซต์ต่อไปนี้ของ Microsoft:
เครื่องมือการแก้จุดบกพร่อง Microsoft
http://www.microsoft.com/whdc/devtools/ddk/default.mspx

ตั้งค่าตัวเลือกบริการ

ตั้งค่านี้ดำเนินการแฟ้มรูปตัวเลือกดังนั้นเมื่อมีการให้บริการ (หรือโปรแกรม CGI) เริ่มต้น มันเริ่มภายใต้ดีบัก ตรวจสอบให้แน่ใจว่า บริการสามารถโต้ตอบกับเดสก์ท็อป ตามคำสั่งแล้วก่อนหน้าในบทความนี้ มิฉะนั้น เมื่อโปรแกรม CGI เริ่มทำงาน โหลดการดีบัก และคุณจะไม่เห็น
  1. เริ่มการทำงานของโปรแกรม Registry Editor (Regedt32.exe):

    คลิกเริ่มการทำงานคลิกเรียกใช้จากนั้น พิมพ์regedt32.
  2. ค้นหารีจิสทรีคีย์ต่อไปนี้:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image แฟ้มประมวล Options\]
  3. สร้างคีย์ย่อยที่ มีชื่อของแฟ้มกระทำการ CGI (ตัวอย่าง MyCGI.exe)
  4. เมื่อต้องการคีย์ย่อยนี้ เพิ่มค่า REG_SZ ชื่อเส้นทางแบบเต็มเพื่อดีบักและการดีบักเกอร์ แต่ไม่ใช้ส่วนขยาย ".exe" คุณยังสามารถเพิ่มคำสั่งต่าง ๆ สำหรับการดีบัก ตำแหน่งที่ตั้งเริ่มต้นการติดตั้ง WinDBG มีต่อไปนี้:
    "Debugger"="C:\\Debuggers\\windbg.exe"
    หมายเหตุ:เส้นทางที่ชี้ไปยังดีบักเกอร์ WinDBG ต้องไม่ประกอบด้วยช่องว่างหรือส่วนขยายของแฟ้มใด ๆ ตัวอย่างเช่น windbg ดังที่แสดงในข้อความต่อไปนี้:
    Options\yourCGI.exe NT\CurrentVersion\Image แฟ้มประมวล HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows "C:\windbg ดีบักเกอร์"=""
  5. ปิด Registry Editor
  6. หยุด และเริ่มบริการ IISADMIN และเรียกใช้ CGI โปรแกรม

    หมายเหตุ:สำหรับการดีบักเกอร์จะปรากฏบนเดสก์ท็อปเป็นค่าเริ่มต้น ผู้ดูแลระบบ IIS ที่ต้องรันบริการเป็นการภายในระบบ และคุณต้องเลือกนั้นอนุญาตการบริการโต้ตอบกับเดสก์ท็อปกล่องกาเครื่องหมาย การตั้งค่าคอนฟิกนี้ ไปที่ขั้นตอนที่ 1 คำแนะนำก่อนหน้าในบทความนี้
  7. ดีบักจะเริ่มต้นเมื่อรูปสำหรับบริการ โหลดแฟ้มที่ปฏิบัติงในหน่วยความจำ
หมายเหตุ:คุณอาจต้องการกำหนดค่าของการCreateProcessAsUserคุณสมบัติใน metabase ไปเท็จเมื่อต้องการแนบการดีบักเกอร์ นี่คือเนื่องจากบัญชีผู้ใช้ที่เรียกใช้โปรแกรมประยุกต์ CGI ในอาจไม่ได้รับการเอาการอนุญาตการบริการ Interact กับเดสก์ท็อปการตั้งค่าสำหรับบริการผู้ดูแลระบบ IIS เมื่อแฟ้มที่ปฏิบัติ CGI คือ spawned คุณสามารถใช้สคริปต์การดูแล adsutil.vbs เพื่อตั้งค่านี้อนุญาตการบริการ Interact กับเดสก์ท็อปการตั้งค่า โดยค่าเริ่มต้น การตั้งค่าเป็นTrue. ตัวอย่างเช่น ใช้คำสั่งต่อไปนี้:
adsutil.vbs w3svc/CreateProcessAsUser "เท็จ"

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจแก้จุดบกพร่อง คลิกหมายเลขบทความด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
273639HOW TO: เริ่ม IISAdmin และบริการขึ้นระหว่างการดีบักเกอร์
286350HOW TO: ใช้ ADPlus การแก้ไข "แฮง" และ"ขัดข้อง"
261871ข้อมูล: COM + และ MTS ทรัพยากรการแก้จุดบกพร่อง
183480HOW TO: Debug DLLs ISAPI ระหว่าง IIS 4.0 และ IIS 5.0

คุณสมบัติ

หมายเลขบทความ (Article ID): 238788 - รีวิวครั้งสุดท้าย: 8 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Internet Information Server 2.0
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Services 6.0
Keywords: 
kbcgi kbhowto kbhowtomaster kbmt KB238788 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:238788

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com