asp调试小结

2018-09-06 11:00

阅读:483

  来自:天极网

  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

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 doesnt 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 doesnt 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

  %>
在试跟踪,错误处理就更简单了,


评论


亲,登录后才可以留言!