Gewusst wie: Debuggen mithilfe von Visual Studio unter IIS ausgeführten Anwendungen der Common Gateway Interface

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 238788 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser schrittweise aufgebaute Artikel beschreibt die CGI (Common Gateway Interface) Anwendungen debuggen, auf denen unter Internetinformationsdienste (IIS) ausgeführt werden, indem Sie eine beliebige Version von Visual Studio.

Debuggen Sie eine Visual C CGI-Anwendung, indem Sie mit Visual Studio

Zum Debuggen einer Visual C#-CGI-Anwendung mit eine Version von Visual Studio gehen Sie folgendermaßen vor:
  1. Der IIS-Verwaltungsdienst muss mit dem Desktop interagieren. Gehen Sie folgendermaßen vor um dies zu konfigurieren:
    1. Öffnen Sie Systemsteuerung , und gehen Sie folgendermaßen vor:
      • Klicken Sie auf Dienste für Windows NT:.
      • Für Windows 2000, Windows XP und Server: Klicken Sie auf Verwaltung , und klicken Sie dann auf Dienste .
    2. Doppelklicken Sie auf IIS-Verwaltungsdienst .
    3. Auf der Registerkarte Anmelden das Kontrollkästchen Sie Interaktion mit Desktop-Dienst ermöglichen .

      Hinweis: Dieser Artikel setzt voraus, dass der IIS-Verwaltungsdienst als lokales System ausgeführt wird.
    4. Beenden und starten Sie ihn der IIS-Verwaltungsdienst neu.
  2. Bevor Sie die Datei Windows.h einschließen, fügen Sie den folgenden Code und erstellen Sie dann eine Debugversion der CGI:
    #define _WIN32_WINNT 0x0400
    					
  3. Fügen Sie folgenden Code am Anfang der 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. Starten Sie die CGI-Anwendung.
  5. Einen Debugger (z. B. WinDBG oder Visual C#) an die CGI anhängen verarbeiten, während ein Meldungsfeld angezeigt wird.
  6. Wenn der Debugger angefügt ist, öffnen Sie die Quelldatei und festlegen Sie einen Haltepunkt und klicken Sie dann auf OK .

    Wenn das Meldungsfeld geschlossen wird, CGI-Programm wird fortgesetzt, und der Haltepunkt erreicht.

Verwendung von WinDBG

Um eine CGI-Anwendung mit WinDBG, Debuggen, obwohl Code ändern, müssen Sie mit WinDBG vertraut sein und die debugging Tools installieren. Sie können die debugging Tools von folgenden Microsoft Web Website herunterladen:
Microsoft Debugging Tools
http://www.microsoft.com/whdc/devtools/ddk/default.mspx

Service-Optionen festlegen

Legen Sie die Image File Execution Optionen fest, dass beim Starten des Dienstes (oder CGI-Programm) er unter dem Debugger startet. Stellen Sie sicher, dass der Dienst mit dem Desktop interagieren kann wie weiter oben in diesem Artikel beschrieben. Andernfalls, wenn das CGI-Programm gestartet wird, lädt des Debuggers und Sie werden nicht angezeigt.
  1. Starten Sie den Registrierungseditor (Regedt32.exe):

    Klicken Sie auf Start , klicken Sie auf Ausführen und geben Sie regedt32 .
  2. Gehen Sie zu folgendem Registrierungsschlüssel:
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\]
  3. Erstellen Sie einen Unterschlüssel mit dem Namen der ausführbaren Datei CGI (z. B. MyCGI.exe).
  4. Dieser Teilschlüssel fügen Sie den REG_SZ-Wert mit dem Namen Debugger und den vollständigen Pfad für den Debugger, aber weglassen der Erweiterung ". exe". Sie können auch alle Befehle für den Debugger hinzufügen. Der standardmäßige Speicherort zum Installieren der WinDBG ist folgende:
    "Debugger"="C:\\Debuggers\\windbg.exe"
    Hinweis: Der Pfad ein, an den WinDBG-Debugger muss keine Leerzeichen oder Dateierweiterungen enthalten. Z. B. Windbg, wie im folgenden gezeigt:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\yourCGI.exe "Debugger"="C:\windbg"
  5. Schließen Sie den Registrierungseditor.
  6. Beenden und starten den IISADMIN-Dienst und führen Sie dann die CGI-Programm.

    Hinweis: Für den Debugger auf dem Standarddesktop angezeigt werden muss der IIS-Dienst als lokales System, und Sie ausführen muss die Interaktion mit Desktop-Dienst ermöglichen Kontrollkästchen. Um dies zu konfigurieren, wechseln Sie zu Schritt 1 den Anweisungen weiter oben in diesem Artikel.
  7. Der Debugger wird gestartet, wenn das Bild für den Dienst ausführbare Datei in den Arbeitsspeicher geladen.
Hinweis: Möglicherweise müssen den Wert der CreateProcessAsUser -Eigenschaft in der Metabasis auf false festlegen, um einen Debugger anhängen. Dies ist, da das Konto, das die CGI-Anwendung ausgeführt, in wird, nicht erben kann die Einstellung Zulassen der Interaktion mit Desktop-Dienst für den IIS Admin-Dienst, wenn die ausführbare CGI-Datei erzeugt wird. Das administrative Skript adsutil.vbs können Sie die Einstellung Zulassen der Interaktion mit Desktop-Dienst . Standardmäßig ist die Einstellung true . Verwenden Sie dazu zum Beispiel den folgenden Befehl:
adsutil.vbs w3svc-CreateProcessAsUser "False"

Informationsquellen

Weitere Informationen zum Debuggen finden Sie folgenden Artikel der Microsoft Knowledge Base:
273639Gewusst wie: Starten, IISAdmin und abhängige Dienste unter einem Debugger
286350So wird 's gemacht: Verwendung ADPlus zur Problembehandlung bei "Hängt" bzw. "Abstürzt"
261871INFO: COM+ und MTS Debugging von Ressourcen
183480Gewusst wie: Debuggen von ISAPI-DLLs in IIS 4.0 und IIS 5.0

Eigenschaften

Artikel-ID: 238788 - Geändert am: Montag, 3. Dezember 2007 - Version: 4.7
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Internet Information Server 2.0
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Services version 5.1
  • Microsoft Internet Information Services 6.0
Keywords: 
kbmt kbcgi kbhowto kbhowtomaster KB238788 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 238788
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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