2009-09-24 77 views
3

作为标题,我朋友的环境是Windows 2003服务器。他附加了IIS进程,并在应该运行的代码上设置了突破点,但VS并没有停下来。 ISAPI是用VC++编写的。如何使用Visual Studio调试ISAPI

他需要设置什么设置?

谢谢。

回答

3

Visual Studio可以调试各类代码:母语,脚本,管理的Silverlight等,你需要确保当你附上附加到:框中包含“本机代码”。

你还需要确保你连接到的w3wp.exe的正确实例,如果有不止一个。

+0

没有为本地ISAPI扩展工作在IIS 7 – 2012-07-24 04:18:54

+0

@PuspenduBanerjee:你建在调试配置中的延伸?你引用的VS的VS建立它的位置的DLL?您正在附加w3wp.exe的正确实例(可能有多个)?您是否确保将“Native”选作要调试的代码类型? – AnthonyWJones 2012-07-24 07:35:04

+0

一切我做到了,除了我已经在我的应用程序文件夹复制的dll [wwwroot文件] – 2012-07-24 08:11:26

1

如果你的朋友正在调试他本地主机上的一个站点,AnthonyWJones的建议就足够了。

如果它在不同的机器,他可能需要运行Visual Studio远程调试,并给自己的权限来连接到进程。

您可以使用一个工具,如Process Explorer帮你找出哪个进程分机/过滤器加载的,所以你可以连接到正确的。

4

这是一种迟到,但有一种更简单的方法。

  • 右键点击你的(ISAPI)项目,选择属性
  • 在对话框中选择配置属性 - >调试
  • 输入:
    • 命令:C:\ WINDOWS \ SYSTEM32 \ INETSRV \ W3WP。 EXE
    • 命令参数:-debug
  • 现在做 “开始调试(F5)” 为你的项目。

Visual Studio将启动IIS的测试实例,可以调试您的DLL,无需连接到工艺等

请务必事先停止IIS服务。

+0

这对于IIS 8.5来说非常适合我。但是,我发现Visual Studio必须以IIS的管理员身份运行才能加载ISAPI扩展。 – rushman 2015-05-26 07:33:38