如何: 调试通用网关接口应用程序使用 Visual Studio 在 IIS 运行

文章翻译 文章翻译
文章编号: 238788 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本分步指南介绍了如何调试运行在 Internet Information Services (IIS) 的通用网关接口 (CGI) 应用程序使用 Visual Studio 的任何版本。

通过使用 Visual Studio 调试 Visual C 的 CGI 应用程序

若要通过使用 Visual Studio 的任何版本调试 Visual C CGI 应用程序,请按照下列步骤操作:
  1. IIS 管理服务必须与桌面交互。为此配置,请按照下列步骤操作:
    1. 打开 控制面板,请按照下列步骤操作:
      • 对于 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. 启动注册表编辑器 (Regedt32.exe),请执行以下操作:

    单击 开始、 单击 运行,然后键入 regedt32
  2. 找到以下注册表项:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image 文件执行 Options\]
  3. 创建一个子项 (例如 MyCGI.exe) CGI 可执行文件的名称。
  4. 向此子项,添加名为调试器和要在调试器中,完整 REG_SZ 值,但忽略".exe"扩展名。您还可以添加的任何命令调试器。若要安装该 WinDBG 默认位置是下面:
    "Debugger"="C:\\Debuggers\\windbg.exe"
    注意指向 WinDBG 调试器的路径不能包含任何空格或文件扩展名。例如对于 windbg,如以下所示:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image 文件执行 Options\yourCGI.exe"调试器"="C:\windbg"
  5. 关闭注册表编辑器。
  6. 停止和启动 IISADMIN 服务,然后运行 CGI 程序。

    注意对于出现默认桌面调试器在 IIS 管理服务必须运行与本地的系统,您必须选择 允许服务与桌面交互 复选框。若要此配置请转到本文内上文中说明的步骤 1。
  7. 调试器将启动时启动图像服务的可执行文件加载到内存。
注意您可能需要将调试器附加将 CreateProcessAsUser 属性的值设置为 false 元数据库中。这是因为 CGI 应用程序运行的帐户可能不继承时产生 CGI 可执行文件是 允许与桌面交互服务 设置为在 IIS 管理服务。您可以使用 adsutil.vbs 管理脚本来设置 允许与桌面交互服务 设置。默认状态下,该设置为 true。例如对于使用以下命令:
adsutil.vbs w3svc/CreateProcessAsUser false

参考

有关调试的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
273639如何: 开始 IISAdmin 和 $ 下一调试器的从属服务
286350如何: 使用 ADPlus 对进行疑难解答"挂起"和"崩溃"
261871信息: COM + 和 MTS 调试资源
183480如何: 调试在 IIS 4.0 和 IIS 5.0 的 ISAPI dll

属性

文章编号: 238788 - 最后修改: 2007年12月3日 - 修订: 4.7
这篇文章中的信息适用于:
  • 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
关键字:?
kbmt kbcgi kbhowto kbhowtomaster KB238788 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 238788
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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