猪猪 2007-2-11 14:44
asp调试小结
信息来源:天极网
1..asp程序要放在iis的虚拟目录下才能运行,在iis里设置能匿名访问,读取并可以执行脚本,如果想要往服务器写数据的话,比如说fso还要打开写入功能,如果要执行cgi等可执行程序,如一些语音聊天室等插件,还要把执行权限打开.
2.虚拟目录最好指定在fat32下,如果放到ntfs下的话,数据库文件要让iis用户(一般是iusr_加上你的机器名字)能完全访问,如果是access数据库的话,还要设置数据库的那个文件夹的权限让iusr_完全访问,因为access数据库还要生成一个临时的.lib文件
3.如果出什么500错误的话,在浏览器的internet选项/高级里把http友好提示的钩去掉,就可以看到你写大代码到底是那里出错了,这样就容易找到错误了
4.如果操作数据库出错的话,可以把执行sql的字符串读出来看看对不对,例如:
response.write(strsql)
5.养成良好的编程习惯,表单提交前先用js脚本验证,变量比较的时候要显式转换成同一类型,用option语句,确保变量先声明后使用,不要忘记显式关闭记录集,数据库连接......再多了就得自己多多体会了。
下面我再转两个调试的函数,希望对大家调试asp脚本有点用处哦
<%
'---------------------------------------------------------------------------
' 程序作用:打印request.form输入的所有值
'---------------------------------------------------------------------------
Response.Write FormData()
function FormData()
Dim llngMaxFieldIndex
Dim llngFieldIndex
Dim llngMaxValueIndex
Dim llngValueIndex
Dim lstrDebug
' Count Form
llngMaxFieldIndex = Request.Form.Count
' Let user know if Form Do Not exist
if llngMaxFieldIndex = 0 Then
FormData = "Form data is empty."
Exit function
End if
' Begin building a list of all Form
lstrDebug = "<OL>"
' Loop through Each Form
For llngFieldIndex = 1 To llngMaxFieldIndex
lstrDebug = lstrDebug & "<LI>" & Server.HTMLEncode(Request.Form.Key(llngFieldIndex))
' Count the values
llngMaxValueIndex = Request.Form(llngFieldIndex).Count
' if the Field doesn't have multiple values ...
if llngMaxValueIndex = 1 Then
lstrDebug = lstrDebug & " = "
lstrDebug = lstrDebug & Server.HTMLEncode(Request.Form.Item(llngFieldIndex))
' Else Loop through Each value
Else
lstrDebug = lstrDebug & "<OL>"
For llngValueIndex = 1 To llngMaxValueIndex
lstrDebug = lstrDebug & "<LI>"
lstrDebug = lstrDebug & Server.HTMLEncode(Request.Form(llngFieldIndex)(llngValueIndex))
lstrDebug = lstrDebug & "</LI>"
Next
lstrDebug = lstrDebug & "</OL>"
End if
lstrDebug = lstrDebug & "</LI>"
Next
lstrDebug = lstrDebug & "</OL>"
' Return the data
FormData = lstrDebug
End function
%>
<%
'-------------------------------------------------------------------------
' 函数功能:输出所有输入request.querystring值,用于调试!
'-------------------------------------------------------------------------
Response.Write QueryStringData()
function QueryStringData()
Dim llngMaxFieldIndex
Dim llngFieldIndex
Dim llngMaxValueIndex
Dim llngValueIndex
Dim lstrDebug
' Count QueryString
llngMaxFieldIndex = Request.QueryString.Count
' Let user know if QueryString Do Not exist
if llngMaxFieldIndex = 0 Then
QueryStringData = "QueryString data is empty."
Exit function
End if
' Begin building a list of all QueryString
lstrDebug = "<OL>"
' Loop through Each QueryString
For llngFieldIndex = 1 To llngMaxFieldIndex
lstrDebug = lstrDebug & "<LI>" & Server.HTMLEncode(Request.QueryString.Key(llngFieldIndex))
' Count the values
llngMaxValueIndex = Request.QueryString(llngFieldIndex).Count
' if the Field doesn't have multiple values ...
if llngMaxValueIndex = 1 Then
lstrDebug = lstrDebug & " = "
lstrDebug = lstrDebug & Server.HTMLEncode(Request.QueryString.Item(llngFieldIndex))
' Else Loop through Each value
Else
lstrDebug = lstrDebug & "<OL>"
For llngValueIndex = 1 To llngMaxValueIndex
lstrDebug = lstrDebug & "<LI>"
lstrDebug = lstrDebug & Server.HTMLEncode(Request.QueryString(llngFieldIndex)(llngValueIndex))
lstrDebug = lstrDebug & "</LI>"
Next
lstrDebug = lstrDebug & "</OL>"
End if
lstrDebug = lstrDebug & "</LI>"
Next
lstrDebug = lstrDebug & "</OL>"
' Return the data
QueryStringData = lstrDebug
End function
%>
在asp.net调试跟踪,错误处理就更简单了