最近网站上出现一个问题:网页上有一个按钮 点击它后 开始根据数据库创建aspx文件
但运行大约6分钟后 页面弹到登陆页面了
我不知道为什么会这样看创建aspx文件的代码
在创造新的文件之前使用File.Exists(path)判断 products这个文件中是否已经存在同名文件
但products里面有70000多个文件了我想是不是因为文件太多 所以太占用内存
  

解决方案 »

  1.   

    但运行大约6分钟后 页面弹到登陆页面了。
    --是不是你把错误页面定位到登录页面了,因此出现异常才跳到登录页面?在创造新的文件之前使用File.Exists(path)判断 products这个文件中是否已经存在同名文件 
    但products里面有70000多个文件了 我想是不是因为文件太多 所以太占用内存--能不能用GUID最为文件名,或者把Guid放到文件名中,这样就不会重名,不用判断了。像csdn论坛的页面就是用GUID做文件名:
    http://topic.csdn.net/u/20090327/18/b970962e-5834-41de-85cf-8db83e1f6ac6.html
      

  2.   

    有可能是Session超时或者应用程序池超时。2楼的方法不错,这样可以避免用File.Exists(path)来判断。因为File.Exists 需要读取硬盘,所以效率很低的。如果LZ不能使用Guid来做文件名的,建议在一个数据库中存贮所有的文件名,在数据库中进行判断。还有,点下按钮后,可以使用异步来创建aspx文件,让Tread在后台运行就可以了。
      

  3.   

    --能不能用GUID最为文件名,或者把Guid放到文件名中,这样就不会重名,不用判断了。 
    不能用GUID 因为是外国网站 URL很重要 好像可以提高被google搜索Session超时 
    不太可能~我把Session设置为一个小时了应用程序池超时
    这个不了解还有,点下按钮后,可以使用异步来创建aspx文件,让Tread在后台运行就可以了。
    多线程不懂----可以介绍一些资料看吗跟具体的内容可以看看这一贴http://topic.csdn.net/u/20090327/11/8d1ce347-a042-4731-ba82-4130d2491cba.html
      

  4.   

    --是不是你把错误页面定位到登录页面了,因此出现异常才跳到登录页面? 不是 错误是通过try catch 然后把异常通过Lable.Text来显示的