none
这个ASP为什么会超时? RRS feed

  • 问题

  • Function BytesToBstr(body,Cset)
    dim objstream
    set objstream = Server.CreateObject("adodb.stream")
    objstream.Type = 1
    objstream.Mode =3
    objstream.Open
    objstream.Write body
    objstream.Position = 0
    objstream.Type = 2
    objstream.Charset = Cset
    BytesToBstr = objstream.ReadText 
    objstream.Close
    set objstream = nothing
    End Function
    strUserName=Request("user")
    if(strUserName="") then
     strUserName=Request("username")
    end if
     if(strUserName<>"") then
     RemoteFileUrl="http://58.215.44.xxx:8080/UserCheck.aspx?user="&strUserName
        Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
        With Retrieval
            .Open "Get", RemoteFileUrl, False, "", ""
            .Send
            GetRemoteData = .ResponseBody
        End With
    response.CharSet="gb2312"
    response.Write(BytesToBstr(GetRemoteData,"utf-8"))
    end if
    Microsoft VBScript 编译器错误 错误 '800a03f6' 
    缺少 'End' 
    /iishelp/common/500-100.asp,行242 
    Active Server Pages 错误 'ASP 0113' 
    脚本超时 
    /PT_ADMIN/tools/FindUser.asp 
    超过了脚本运行的最长时间。您可以通过指定 Server.ScriptTimeOut 属性值来修改此限制或用 IIS 管理工具来修改它。 

    2011年10月31日 8:46

答案

全部回复

  • 上面的是FindUser.asp

    在另一个面用ajax调用,查询慢,在第一个ajax查询完成之前,我输入另一个用户查询,点提交,这个页面的执行,会等到上一个ajax查询完才会执行。为什么?

     

    <%

    if request.form <> "" then

     

    sAccount = request.Form("account")

    End If

     

    %>

     

    <form id="form" name="form" method="post" action="">

      <table width="100%" border="0">

        <tr>

          <td width="8%">用户账号:</td>

          <td width="92%"><input type="text" name="account" value="<%=sAccount%>" maxlength="32" size="40"></td>

        </tr>

        <tr>

          <td align="left" colspan="2"><input type="submit" name="Submit" value="提交" /></td>

        </tr>

        <tr>

        <td>

        <div>用户来源:

        <div id="findUserResult" style="padding-left:50px; padding-top:10px;">

        <%

        if sAccount<>"" then

          %>

          正在查询,请稍等....

        <%

        end if

        %>

        </div>

        </div>

        </td>

        </tr>

      </table>

    </form>

    <hr>

    <%

    if sAccount<>"" then

    %>

    <script language="javascript" type="text/javascript" src="Catalog/inc/jquery1.2.3.min.js"></script>

    <script language="javascript" type="text/javascript">

    $(function(){

    var url="FindUser.asp?username="+escape('<%=replace(sAccount,"'","\\'") %>');

    $.get(url, function(data){

                          var arr=eval(data);

                           var str='';

                          for(var i=0;i<arr[0].domains.length;i++)

                          {

                           var d=arr[0].domains[i].name;

        if(d=="盛大")

     {

      str+="<span style='color:red'>"+d+"</span><br/>";

     }

     else

     {

      str+=d+"<br/>";

     }

                          }

                          document.getElementById("findUserResult").innerHTML=str;

                         });

    }

    );

    </script>

    <%

    end if

    %>


    2011年10月31日 10:11
  • 如果等ajax查询完再执行另一个查询,页面很快显示出来了,如果在ajax查询完成之前,提交另一个查询,会等一会儿,才会显示出来页面,为什么?

     


    2011年10月31日 10:13
  • 再简单描述一下

    用户名_________

    提交

    这是b.asp 在b.asp里用ajax调用了a.asp,查询用户名来源

    在a.asp里,我用XMLHttp抓取了外的一个网址,来获取查询的结果。

    页面罗辑就是这样的 页面罗辑就是这样的

     

    今天在b.asp提交后,页面没有了反应,N久,提示a.asp,超时。

     

    很奇怪,b.asp没有对a的包含,仅仅是对a.asp用ajax进行的调用。

     

    测试,好像是在ajax调用完成之前,服务器不会处理b.asp的请求。

    比如输入一个用户名,查询,在ajax结果出现前,再输入一个用户名查询,就会很慢。可如果是等ajax的请求完成了,页面立该显示出来。

     

    就是说对a.asp的ajax请求,会阻塞服务器上脚本的执行?为什么?


    2011年10月31日 12:49
  • MSXML2.ServerXMLHTTP

    改用这个后正常


    • 已标记为答案 male110 2011年11月1日 3:29
    2011年11月1日 3:29