读书人

关于asp在iis6中调试的有关问题

发布时间: 2012-09-06 10:37:01 作者: rapoo

关于asp在iis6中调试的问题
我有个简单的asp页面和一个access库,已经在iis6中搭好了,可是发现在调试页面的时候,如果是代码写错了,浏览器可以正常显示错误信息,但如果是sql语句写错了,浏览器就死掉了,页面一直是空白进度条一直在读,ldb文件也一直加锁去不掉了,以前没有这个问题,哪位高手告诉我怎么办呢?

系统是win7 iis6 iis设置中已经启用父路径 打开了服务端和客户端的调试 ie设置中也去掉了友好显示http错误信息

[解决办法]
每个语法错误都会有提示,有些逻辑错误没有错误信息,因为在语法角度上来说没有错,但有些逻辑错误会导致语法的错误
例如 set a=b
此时如果b只是一个整数,则会报错

在sql语句中 书写错误一般包含 查询语句错误,字段名写错,表名写错等等,这些都会正常报错。
例如字段名写错 ASP报
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
/index.asp, line 53

所以你说没有报错 要么就是逻辑错误没导致语法出错,要么就是查看IIS设置有没有设置为将错误发送到浏览器,在检查浏览器中是否勾选的显示友好的HTTP错误信息,如果打勾的话就去掉。另外检查下页面中有没有用错误处理来跳过出错内容 例如
ON ERROR RESUME NEXT
能想到的基本就这些了。


[解决办法]
调试完毕 整体逻辑上没有什么太大问题 都是细节处你没有注意 先上下原始代码,这里把之前的<!-- #include file="conn.asp" -->文件直接写在主体文件中了 就做了这个修改 其他的没有变动

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><%Dim connSub connect    On Error Resume Next    Set Conn=Server.CreateObject("ADODB.Connection")    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db.mdb")    If Err.Number<>0 Then Response.Write "数据库连接发生错误" : Response.End()End sub   connect '链接数据库%>  <script language="javascript">function CheckAll(form){    for (var i=0;i<form.elements.length;i++){        var e = form.elements[i];        if (e.name != 'chkall') e.checked = form.chkall.checked;    }}</script><html><head></head><body><form name="form1"> <select name="searchid" id="searchid" onchange="redirect()">  <option value="0">请选择</option><%Sql = "Select * from jilian where pid=0 order by id desc"set rs = conn.execute(sql)do while not rs.eof%>  <option value="<%=rs("id") %>"><%=rs("name") %></option><%    rs.movenextlooprs.closeset rs=nothing%> </select>    <select name="type2" id="type2">  <option value="0">请选择</option> </select></form><script>  function redirect(){    var x=document.getElementById("searchid").value;    var i    i=0    var temp=document.form1.type2<%set rs2=server.CreateObject("adodb.recordset")sql2="select * from jilian"rs2.open sql2,conn,1,3while not rs2.eof%>    cnt=<%=rs2("pid")%>    if(cnt==x) {        if(x!=0){            temp.options[i+1]=new Option('<%=rs2("name") %>','<%=rs2("id")%>')            i=i+1        }else{            temp.remove(i+1);        }    }<%    rs2.movenextwend%>}</script></body></html> 

读书人网 >ASP

热点推荐