关于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" -->文件直接写在主体文件中了 就做了这个修改 其他的没有变动
<!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>