在经典ASP中使用Response.Write进行调试

时间:2010-01-14 03:53:24

标签: asp-classic

我正在尝试使用Response.Write调试一些代码,但是当我运行代码时,它会跳过该语句并在代码中的某些位置出错。

如何在没有出现其他错误的情况下显示我的Response.Write语句?

7 个答案:

答案 0 :(得分:11)

当我必须在页面上的某个位置查看状态时,我经常使用Response.End

答案 1 :(得分:11)

我们利用Visual Studio 2008来调试经典的asp页面。您可以附加到IIS进程并“单步执行”页面。它非常甜美。以下是步骤:

  1. 从源代码管理中获取最新的经典ASP。

  2. 安装IIS(如果尚未安装)。仅供参考......我正在使用IIS 5.1。

  3. 创建一个名为“classicDebug”的虚拟目录,指向您的本地目录(C:\ Websites \ ClassicWebSite)。

  4. 查看虚拟目录属性,虚拟目录选项卡。

  5. 启用“脚本源访问”复选框。

  6. 配置按钮,选项选项卡 - 检查所有内容。

  7. 调试标签 - 检查所有内容。

    7a中。在ASP.NET选项卡中,选择2.x

  8. 在VS.NET 2008中加载(不运行或调试或F5)网站。

  9. 相应地编辑您的global.asa(数据源和路径)。

  10. 找到你想要“逐步完成”的.asp页面并在顶部(或某处)设置一个断点。

  11. 打开IE,然后导航到您的页面。

  12. 返回VS.NET并选择Debug - >附加到流程

  13. 选中“显示所有用户的进程”并选择该进程。对我来说(IIS 5.1),进程名称是使用IWAM_COMPUTERNAME帐户运行的dllhost.exe,类型为“Script,T-SQL,Managed,x86”。

  14. 使用IE访问您的页面... VS.NET应该破解。

答案 2 :(得分:4)

注释掉产生错误的行,看看respnse.write显示的内容是唯一合理的。

在开发网页时,请勿使用on error resume next。您必须确保正确构建页面并确保生成正确的代码。如果您使用on error resume next,则不会看到任何错误。

在我看来,

on error resume next只应用于数据库操作和交付(非开发)代码。在这种情况下,您应该使用

if Err.Number <> 0 then 

构造以测试任何错误。如果你已经将on error resume next语句放在代码的顶部,那么在asp中的每一行之后你根本无法做到这一点,但它肯定会在数据库处理代码中出现。

答案 3 :(得分:3)

您必须在ASP页面上使用“on next resume next”语句。这将解决您的问题,当发生错误时它将移动到下一行而不是抛出错误。

您可以查看此链接http://www.powerasp.com/content/new/on-error-resume-next.asp以供参考。

快乐编码

答案 4 :(得分:2)

在调试语句后尝试Response.Flush,或将Response.Buffer设置为false。

答案 5 :(得分:1)

这可能有助于替代response.write。

我把这个ASP包含的类放在一起,它与Firebug + FirePHP一起使用。它允许您将值(包括字符串,多维数组甚至是使用json.asp创建的对象)记录到firebug控制台并查看ASP的内置集合对象,这些对象可以提供帮助(特别是对于无法输出调试数据的Ajax打破json响应。)自动记录Ajax脚本加载时间和错误,以便快速查看。

https://github.com/dmeagor/ClassicASP-FirePHP

只需包含该文件并使用log(somevalue)将格式化变量发送到firebug控制台。

根据MIT开源许可证发布

答案 6 :(得分:1)

说到David Meagor发布的备用选项,您还可以将跟踪写入文件。以下是如何写入文件的示例:http://www.4guysfromrolla.com/webtech/040699-1.shtml

如果需要,您甚至可以将跟踪子例程放在包含文件中,并在需要时在所有页面中使用它。

我们使用的另一个解决方案是将跟踪方法放在.Net程序集中,将其注册为COM,然后使用CreateObject调用它。

这些选项可让您将跟踪保存在以后可以查看的文件中,并与其他开发人员共享。

我个人使用这些方法的混合:我查看日志文件,使用断点,甚至不时放置Response.Write。

另一件事:激活并查看IIS日志:它们通常会告诉您页面中断的行。您可以在此处阅读如何启用或禁用传统ASP的日志:https://technet.microsoft.com/en-us/library/hh831387.aspx