ΔΙΑΔΙΚΑΣΙΕΣ: Εντοπισμός σφαλμάτων κοινές Gateway Interface εφαρμογές εκτελούνται κάτω από τις υπηρεσίες IIS, χρησιμοποιώντας το Visual Studio

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 238788 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο εντοπισμού σφαλμάτων σε εφαρμογές Common Gateway Interface (CGI) που λειτουργούν κάτω από υπηρεσίες πληροφοριών Internet (IIS), χρησιμοποιώντας οποιαδήποτε έκδοση του Visual Studio.

Εντοπισμός σφαλμάτων σε Visual C εφαρμογών CGI, χρησιμοποιώντας το Visual Studio

Για τον εντοπισμό σφαλμάτων σε μια εφαρμογή Visual C CGI, χρησιμοποιώντας οποιαδήποτε έκδοση του Visual Studio, ακολουθήστε τα εξής βήματα:
  1. Το IIS Admin Service πρέπει να αλληλεπιδρούν με την επιφάνεια εργασίας. Για να ρυθμίσετε τις παραμέτρους σε αυτό, ακολουθήστε τα εξής βήματα:
    1. OpenΟ πίνακας ελέγχουκαι ακολουθήστε τα εξής βήματα:
      • Για τα Windows NT: κάντε κλικ στο κουμπίSERVICES.
      • Για τα Windows 2000, Windows XP και .NET Server: κάντε κλικ στο κουμπίΕργαλεία διαχείρισης, και στη συνέχεια κάντε κλικ στο κουμπίSERVICES.
    2. Διπλό κλικΥπηρεσία IIS Admin.
    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. Όταν το πρόγραμμα εντοπισμού σφαλμάτων είναι συνδεδεμένο, ανοίξτε το αρχείο προέλευσης και οριστεί ως σημείο διακοπής και, στη συνέχεια, κάντε κλικ στο κουμπίOk.

    Κατά το κλείσιμο του παραθύρου μηνύματος, συνεχίζει το πρόγραμμα CGI και θα να χτυπήσετε το σημείο διακοπής.

Χρήση WinDBG

Για τον εντοπισμό σφαλμάτων σε μια εφαρμογή CGI με WinDBG, αν και δεν χρειάζεται να αλλάξετε οποιονδήποτε κώδικα, πρέπει να είστε εξοικειωμένοι με τα WinDBG και να εγκαταστήσετε τα εργαλεία εντοπισμού σφαλμάτων. Μπορείτε να κάνετε λήψη των εργαλείων εντοπισμού σφαλμάτων από την ακόλουθη τοποθεσία της Microsoft στο Web:
Εργαλεία εντοπισμού σφαλμάτων της Microsoft
http://www.microsoft.com/whdc/devtools/ddk/default.mspx

Ορισμός των επιλογών υπηρεσίας

Ορισμός τουΕκτέλεση αρχείου εικόναςΕπιλογές έτσι ώστε κατά την εκκίνηση της υπηρεσίας (ή το πρόγραμμα CGI), να ξεκινά με το πρόγραμμα εντοπισμού σφαλμάτων. Βεβαιωθείτε ότι η υπηρεσία μπορεί να αλληλεπιδράσει με την επιφάνεια εργασίας, όπως περιγράφεται παραπάνω σε αυτό το άρθρο. Διαφορετικά, όταν ξεκινά το πρόγραμμα CGI, φορτώνει το πρόγραμμα εντοπισμού σφαλμάτων και δεν θα δείτε την.
  1. Ξεκινήστε τον επεξεργαστή μητρώου (registry editor) (Regedt32.exe):

    Κάντε κλικStartΚάντε κλικΕκτέλεση, και στη συνέχεια πληκτρολογήστε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, σύμφωνα με τα ακόλουθα:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Options\yourCGI.exe NT\CurrentVersion\Image την εκτέλεση αρχείου "πρόγραμμα εντοπισμού σφαλμάτων"="C:\windbg"
  5. Κλείστε τον Επεξεργαστή Μητρώου (Registry Editor).
  6. Διακοπή και η εκκίνηση της υπηρεσίας IISADMIN και στη συνέχεια, εκτελέστε την εφαρμογή CGI πρόγραμμα.

    ΣΗΜΕΙΩΣΗΓια το πρόγραμμα εντοπισμού σφαλμάτων για να εμφανίζονται στην προεπιλεγμένη επιφάνεια εργασίας, πρέπει να επιλέξετε το IIS Admin υπηρεσία πρέπει να εκτελούνται ως τοπικό σύστημα και τοΥπηρεσία εγγραφής με την επιφάνεια εργασίαςΠλαίσιο ελέγχου. Για να ρυθμίσετε τις παραμέτρους σε αυτό, προχωρήστε στο βήμα 1 του παραθύρου οδηγιών, παραπάνω σε αυτό το άρθρο.
  7. Το πρόγραμμα εντοπισμού σφαλμάτων θα ξεκινήσει όταν η εικόνα για την υπηρεσία εκτελέσιμο αρχείο φορτώνεται στη μνήμη.
ΣΗΜΕΙΩΣΗΊσως χρειαστεί να ορίσετε την τιμή τηςCreateProcessAsUserη ιδιότητα μετα-βάσης για τηνFALSEΓια να επισυνάψετε ένα πρόγραμμα εντοπισμού σφαλμάτων. Αυτό συμβαίνει επειδή ο λογαριασμός που εκτελεί την εφαρμογή CGI σε δεν μπορεί να κληρονομήσει τιςΕπιτρέπει τη Interact της υπηρεσίας με την επιφάνεια εργασίαςρύθμιση της υπηρεσίας διαχείρισης των υπηρεσιών IIS όταν είναι spawned το εκτελέσιμο αρχείο CGI. You can use the adsutil.vbs administrative script to set theAllow the Service to Interact with desktopΡύθμιση. By default, the setting istrue. For example, use the following command:
adsutil.vbs w3svc/CreateProcessAsUser "false"

Αναφορές

For additional information about debugging, click the article numbers below to view the articles in the Microsoft Knowledge Base:
273639HOW TO: Start IISAdmin and Dependent Services Under a Debugger
286350HOW TO: Use ADPlus to Troubleshoot "Hangs" and "Crashes"
261871INFO: COM+ and MTS Debugging Resources
183480HOW TO: Debug ISAPI DLLs Under IIS 4.0 and IIS 5.0

Ιδιότητες

Αναγν. άρθρου: 238788 - Τελευταία αναθεώρηση: Κυριακή, 19 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Internet Information Server 2.0
  • Microsoft Internet Information Server 3.0
  • Οδηγός Microsoft Internet Information Services 6.0
Λέξεις-κλειδιά: 
kbcgi kbhowto kbhowtomaster kbmt KB238788 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της 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