2011-01-27 81 views

回答

12

在VBScript中,Stop语句可用于触发断点。

Response.Write "a line" 
Stop 
Response.Write "a line after the breakpoint 

我假设这是你想要调试的本地IIS7实例。在我的计算机上,当我尝试加载具有Stop语句的示例页面时,我得到了Visual Studio Just-In-Time Debugger弹出窗口。您需要提供管理权限才能调试页面。

您可能还需要在IIS管理器的“ASP”小程序中启用服务器端调试,但是当我刚才检查时,服务器端调试在我的机器上设置为False。


如果你不介意在运行Visual Studio具有管理员权限(或已经这样做),那么你也可以尝试以下方法:

  1. 使用“文件 - >打开网站.. 。“命令打开该网站(在”本地IIS“部分下)。
  2. 从解决方案资源管理器中,打开要调试的文件并设置断点。
  3. 选择“Debug - > Attach to Process ...”菜单项启动调试器。选择“w3wp.exe”进程。
  4. 现在,当您尝试在浏览器中加载页面时,Visual Studio将停止在任何断点处。

另请注意,如果您对页面进行更改,更改将保存到磁盘。在工作中,我使用VS2005作为经典ASP的主编,正是因为我可以轻松设置断点。


我还没有尝试过的第三种选择可能是最近发布的IIS Express。它应该专门为没有完全管理权限的开发人员设计,因此也许调试不需要提升提示。如果我有机会在接下来的几天内尝试,我会更新我的答案。

1
response.write("my value....") 
response.end 
;) 
+0

http://discuss.joelonsoftware.com/default.asp?dotnet.12.294923.6使用vs2003 ... – eloycm 2011-01-27 16:41:11

+1

是的...这很明显,并没有真正回答我的问题。我正在寻找一种实际设置断点的方法。将response.write()放入成千上万行传统ASP中以追踪bug是没有趣味的。 – 2011-01-27 17:13:46

+1

顺便说一句,我会将您的评论与您的​​答案互换为更具信息性的内容,以及引用您链接到的文章的相关部分以防将来参考文献死亡的良好做法。 – 2011-01-28 15:02:12

0

我已经遇到过这种情况几次了。这总结了“典型的嫌疑人”。如果您知道更多,请添加修改或评论。

  1. 确保web.config中已调试=“真”

  2. 确保您连接到正确的w3wp.exe进程

  3. 确保与此相关联的应用程序池配置IIS中的站点将“最大工作进程数”设置为1(可在“流程模型”部分找到)。

  4. 确保IIS中站点的ASP配置允许客户端和服务器调试(可在调试属性部分找到)。

  5. 确保machine.config在部署标记中没有零售=“True”。该属性的默认值为false,这将允许调试。

- SS

0

我不知道任何人面对这个问题,或者没有。我在VS 7.5上有一个asp.net和经典的ASP混合应用程序在IIS 7.5上。我按照所有必要的步骤来调试经典的ASP,但没有运气。最后发现,当我们W3wp.exe自动挂载时,默认情况下它会附带选项“自动确定要调试的代码的类型”,我认为在该选项中,它只确定托管代码,而不是脚本。我改变它明确选择代码的类型进行调试,并选择“脚本”..哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇呵呵呵呵呵呵呵

还有一件事情,它不允许我一起选择托管代码和脚本。