原本的页面是正确的,后来同时有两个页面访问请求就会导致后一个页面的的内容出现在前一个页面上。看了一下IIS中只有一个进程执行这个网站的代码,是由于什么原因导致的页面内容都混了呢?各位大神帮帮忙,找了好久都没找到解决方法。图片不知道为什么传不上来asp.netiisC#

解决方案 »

  1.   

    肯定用了APPLICATION变量或者STATIC变量
      

  2.   

    我用了static变量,但是把static去掉之后还是存在这个问题
      

  3.   

    我是先打开A页面,然后迅速打开B页面,因为B页面响应速度快,所以B页面先显示出来,然后A页面的结果和B页面相同。我昨天暂时解决了这个问题。我看了一下任务管理器,其中只有一个进程来处理所有的页面请求,导致其中的变量都是共用的,然后我把针对每个页面的数据都存储在Session里面,取内容进行判断是哪个页面,取出之后暂时解决了这个问题,不过必须要在用户关闭页面时将对应的内容删掉防止内存资源消耗殆尽。我想问还有什么更好的解决方法吗?
      

  4.   

    终于可以上传图片了,这是正确的A页面:
    下面是出现内容混淆的A和B页面:
      

  5.   

    我是先打开A页面,然后迅速打开B页面,因为B页面响应速度快,所以B页面先显示出来,然后A页面的结果和B页面相同。我昨天暂时解决了这个问题。我看了一下任务管理器,其中只有一个进程来处理所有的页面请求,导致其中的变量都是共用的,然后我把针对每个页面的数据都存储在Session里面,取内容进行判断是哪个页面,取出之后暂时解决了这个问题,不过必须要在用户关闭页面时将对应的内容删掉防止内存资源消耗殆尽。我想问还有什么更好的解决方法吗?为什么会是共用的?
    每个请求都应该是新的实例啊
      

  6.   

    没有关系的,A先按search键,然后B再按search键。但是因为B没有结果返回所以会比较快显示,然后当A返回的时候也就变成和B一样的了。A原来的样子如图1
      

  7.   

    我是先打开A页面,然后迅速打开B页面,因为B页面响应速度快,所以B页面先显示出来,然后A页面的结果和B页面相同。我昨天暂时解决了这个问题。我看了一下任务管理器,其中只有一个进程来处理所有的页面请求,导致其中的变量都是共用的,然后我把针对每个页面的数据都存储在Session里面,取内容进行判断是哪个页面,取出之后暂时解决了这个问题,不过必须要在用户关闭页面时将对应的内容删掉防止内存资源消耗殆尽。我想问还有什么更好的解决方法吗?为什么会是共用的?
    每个请求都应该是新的实例啊
    我在任务管理器上看到只有这一个进程,不管开多少个这个页面,当然我说的是IIS端的,就是iisexpress.exe这个进程。客户端的进程肯定是随着页面的增加而增加的。
      

  8.   

    这个跟进程没关系IIS是自动管理线程垃圾处理的问题还是 出在你两个页面的代码中,要注意那些共用对象比如 SESSION APPLICATION STATIC
      

  9.   

    你是在同一个电脑上测试的吗?你的页面内容(在asp.net程序中对应的关键数据)是针对页面局部(也就是ViewState)来设计的,还是针对会话(也就是Session集合)来设计的?没有稍微深一点的描述,什么问题也看不出来,只会耽误工夫。
      

  10.   


    就算是有1000个人访问,那么asp.net也完全可能会只有一个进程。人家说的“实例”是指 Syste.Web.UI.Page 类型的实例对象,不是指进程。
      

  11.   

    我是先打开A页面,然后迅速打开B页面,因为B页面响应速度快,所以B页面先显示出来,然后A页面的结果和B页面相同。我昨天暂时解决了这个问题。我看了一下任务管理器,其中只有一个进程来处理所有的页面请求,导致其中的变量都是共用的,然后我把针对每个页面的数据都存储在Session里面,取内容进行判断是哪个页面,取出之后暂时解决了这个问题,不过必须要在用户关闭页面时将对应的内容删掉防止内存资源消耗殆尽。我想问还有什么更好的解决方法吗?为什么会是共用的?
    每个请求都应该是新的实例啊
    还是看你变量是怎么传值,并存储的,你用SEESSION解决了,间接说明了你还是用了全局变量
      

  12.   

    我是先打开A页面,然后迅速打开B页面,因为B页面响应速度快,所以B页面先显示出来,然后A页面的结果和B页面相同。我昨天暂时解决了这个问题。我看了一下任务管理器,其中只有一个进程来处理所有的页面请求,导致其中的变量都是共用的,然后我把针对每个页面的数据都存储在Session里面,取内容进行判断是哪个页面,取出之后暂时解决了这个问题,不过必须要在用户关闭页面时将对应的内容删掉防止内存资源消耗殆尽。我想问还有什么更好的解决方法吗?为什么会是共用的?
    每个请求都应该是新的实例啊
    我在任务管理器上看到只有这一个进程,不管开多少个这个页面,当然我说的是IIS端的,就是iisexpress.exe这个进程。客户端的进程肯定是随着页面的增加而增加的。进程不等于请求,一个进程可以处理很多请求
      

  13.   

    估计还是STATIC变量或是APPLICATION这些引起的。
      

  14.   

    我是针对页面的控件来设计的,开始的时候并没有想到多用户访问会出现这个情况,因为我是ASP.NET的初学者,对这方面之前没有怎么了解过。就是说我把数据显示到相应的控件上,这样做必然会导致问题,这个现在已经清楚了。那么针对会话(Session)是应该怎么设计?
      

  15.   

    我将搜索出来的结果确实存在一个静态变量里面,但是如果不存储在静态变量中当客户端调用一个服务器控件服务端响应之后会导致Page实例重新加载导致之前搜索出的结果都没了,用静态变量可以使得结果保存,这样比如点击上图中的第2页时之前的结果也照样还是会有,否则显示就是空白了。