我正在尝试使用Response.Write
调试一些代码,但是当我运行代码时,它会跳过该语句并在代码中的某些位置出错。
如何在没有出现其他错误的情况下显示我的Response.Write
语句?
答案 0 :(得分:11)
当我必须在页面上的某个位置查看状态时,我经常使用Response.End
。
答案 1 :(得分:11)
我们利用Visual Studio 2008来调试经典的asp页面。您可以附加到IIS进程并“单步执行”页面。它非常甜美。以下是步骤:
从源代码管理中获取最新的经典ASP。
安装IIS(如果尚未安装)。仅供参考......我正在使用IIS 5.1。
创建一个名为“classicDebug”的虚拟目录,指向您的本地目录(C:\ Websites \ ClassicWebSite)。
查看虚拟目录属性,虚拟目录选项卡。
启用“脚本源访问”复选框。
配置按钮,选项选项卡 - 检查所有内容。
调试标签 - 检查所有内容。
7a中。在ASP.NET选项卡中,选择2.x
在VS.NET 2008中加载(不运行或调试或F5)网站。
相应地编辑您的global.asa(数据源和路径)。
找到你想要“逐步完成”的.asp页面并在顶部(或某处)设置一个断点。
打开IE,然后导航到您的页面。
返回VS.NET并选择Debug - >附加到流程
选中“显示所有用户的进程”并选择该进程。对我来说(IIS 5.1),进程名称是使用IWAM_COMPUTERNAME帐户运行的dllhost.exe,类型为“Script,T-SQL,Managed,x86”。
使用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。