一个页面sleep的时候。导致其它页面都打不开?本地没问题。服务器上不行。
我把代码贴上来了。本地没问题。都能打开。但传到服务器上就出了这问题。
spier.cs 放在app_code下边
public static class Spider
{
    public static void a()
    {
        Thread.Sleep(20000);
    }
    public static void b()
    {
    }
}
test.aspx
public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["t"] != null)
        {
            Spider.a();
        }
        else
        {
            Spider.b();
        }
        Response.Write("a");
    }
}
代码就是这样。
测试网址为:http://www.cha55.org/test.aspx?t=x与http://www.cha55.org/test.aspx
目的很明显。但是在服务器上。只要打开有?t=x的网页。test.aspx只有等有?t=x的网页打开完了才显示。
但在本地却不是这样。实在搞不懂了。

解决方案 »

  1.   

    我用IE6测试不会,用FF测试会有这种问题,可能两种浏览器发出的请求方式不同,后者导致
    服务器把两个请求放在同一线程中,或者排队给同一线程了。
      

  2.   

    我用ie8测试也有这个问题。但是应该不是这个问题。因为我把这个代码放在本地的iis上测试没有此现象!
      

  3.   

    sleep是让当前线程阻塞一段时间。
      

  4.   

    嗯。我就是这个意思。
    http://www.cha55.org/test.aspx?t=x
    那么阻塞也就阻塞这一次请求。当我在发起http://www.cha55.org/test.aspx就不该阻塞才对。但现在
    http://www.cha55.org/test.aspx不该阻塞的也阻塞了但地本又没问题。
      

  5.   

    不会吧。资料上不是说是基于多线程的莫?应该不会是基于单线程的吧。那类似csdn的高并发咋搞?而且那段代码在本地没有问题。
    打?t=x后在打开不带参数的能马上返回。。就是想来看看有人遇到过同类问题没有
      

  6.   

    sorry是阻的同一个进程,比如你页面ctrl+n那个新打开的和原来的是应用的同一个ie进程你可以重新打开一个IE进程来测试
      

  7.   

    IIS什么版本?asp.net又是什么版本?
      

  8.   

    本地上测试:本机iis7 ie8 虚拟机上测试windows2003 iis6 ie6
    服务器上 iis6我在本地上测试的时候用的是ie8。虚拟机上用的是ie6 服务器上是在本机ie8上直接浏览的。但我发现同一客户端就要阻塞。同一ip的不同客户端不会。 同一客户端但在本地测试也不会。
    http://www.google.com.sg/search?hl=zh-CN&source=hp&q=ie%E6%9C%89%E8%AF%B7%E6%B1%82%E9%99%90%E5%88%B6&aq=f&aqi=&aql=&oq=&gs_rfai=
    我看看不知道有帮助没有。猛然想起以前了解过相关的知识样。但如果本地与服务器表现一样就好理解了。但问题是表现不一样。
      

  9.   

    Thread.Sleep是阻塞的当前线程,或者说当前主线程.根据黑箱子法则,最终的问题只能是:
    因不同浏览器发出的http请求数据(特别是header内容)不同,导致IIS把前后两个请求都划归给了一个线程来处理.你可以用相关工具查看一下不同浏览器发出的http数据有何区别.不同的浏览器在这方面的区别还是很大的,譬如在不同浏览器下,往往会在session/sessionid /cookie方面有不同的表现.你的这个问题的特殊之处在于:同一个人两次请求都是同一个aspx页面
      

  10.   

    我也有同样的问题..服务器后台一个单独的线程启动了...这个IIS就死掉了..页面也访问不了...同样求解...IIS6.0....NET2.0
      

  11.   

    我刚才了解一一下。ie好像有两个请求限制。我用另一个测试www.kd21.cn但不会出现这个问题。kd21是用目录的。不是在根目录下。估计有这个区别。我试看有没解决办法。有就发上来。然后结贴。和和。大家一起扩它。