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调试跟踪,错误处理就更简单了