如何在ASP.NET中调试页面?我有一个IIS服务器,我正在尝试添加一个新的页面,当我在服务器上运行ASP时,我得到一个非常简短和不明显的错误消息
Microsoft OLE DB Provider for SQL Server error '80040e14'
Incorrect syntax near '='.
/forms/test.asp, line 52
第52行是:
Set RS = Conn.Execute(SQL)
其中'SQL'是SQL查询语句,之前设置了几行。我一遍又一遍地检查了这个陈述我相信查询的语法是可靠的,因为一个几乎相同的查询在页面中先前运行并且其他页面运行相同的东西。我已经工作了一段时间,试图找到错误但没有成功。
我是ASP的新手,在IIS环境中工作。我通常使用Java,其中我有一个堆栈跟踪来收集信息,并可以使用控制台输出来跟踪数据以帮助调试过程。 ASP中没有这一点。
那么,我可以用什么方法来跟踪这个bug并解决它?我知道我在这里列出了一个具体的例子,但我真的需要一种可以用来调试ASP的通用技术。我可以在某个地方打印到控制台来跟踪变量值吗?我可以在弹出窗口中发送该信息,以便在错误发生之前看到数据是什么样的吗?是否有某种方法可以更详细地描述执行中发生的事情,以便我可以追踪我哪里出错了?
感谢您的帮助!
SQL语句是:
SQL = "SELECT firstname,lastname FROM clientinfo WHERE [ClientID] = " & Request("ID")
即使我们可以解决这个问题,是否有一些技术可以更容易地调试ASP?
答案 0 :(得分:1)
放置以下内容:
response.write Request("ID") & "<br>"
response.write SQL
在调用execute SQL之前 第二,确保您的请求(“ID”)以其他方式返回数字,如下所示:
SQL = "SELECT firstname,lastname FROM clientinfo WHERE ClientID = '" & Request("ID") & "'"
松开括号,因为ClientID不是SQL保留名称。
关于调试经典ASP(VBScript)页面:调试那些吸盘的唯一方法是使用response.write或移动到.NET框架,这对你来说是个问题。有很多工具声称它们可以让你调试经典ASP页面:不要浪费你的金钱和时间。
*已添加:**对于调试期间,您还应从网页中删除“on next resume next”并执行Option Explicit。首先,您将看到错误发生的位置,其次,虽然让您的生活更加困难,但会阻止一些错误,因为它不允许您使用任何未声明的变量。
答案 1 :(得分:0)
根据文件名判断&#34; test.asp&#34;它看起来像你使用ASP而不是ASP.NET。我不知道这是不是你的意图?可以通过将调试器(例如Visual Studio)附加到IIS的工作进程(通常是w3wp.exe)来调试ASP.NET。
答案 2 :(得分:0)
ASP或ASP.NET,在这两种情况下,您都可以使用简单的日志记录来调试文件。 将此添加到常用程序的asp页面,我称之为routines.asp
并在您的页面中调试添加
<!--#include file="routines.asp"-->
然后在需要时调用sub
call debug page, line, varname, varcontents
其中page = asp文件的名称以及可能正在执行的过程或函数的名称,line =您调用debug,varname和varcontents名称和变量本身的linenummer,前两个参数使其易于查找记录的来源
例如
call debug "myApp.asp/getOLEdata", "122", "SQL", SQL