查看完整版本: asp调试小结

猪猪 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调试跟踪,错误处理就更简单了
页: [1]
查看完整版本: asp调试小结