自己做的一个。NET的网站,其中有长时间运行的线程,在自己电脑上测试良好,一天24小时线程都不会停,
可是当我传到空间后,经过写日志发现可能过个几小时[这期间是没有人访问],有时候很短,一个小时左右,就会触发一次Application_End事件,这样会导致我的线程停止,而使我的很多业务不能处理。
而再一次访问的时候,才会触发Application_start,我在这事件中有启动线程的操作,这样又会回复正常。
我想问一下,IDC是否会定期停掉网站,而达到回收资源的目的?
如果真的是这样,我如何防止他停掉我的呢?或者退一步说,在他停掉后,我如何立即又让我的站启动起来,从而让我的线程能继续执行?
希望哪位能给详细支支招,不胜感激!
谢谢各位了!

解决方案 »

  1.   

    IDC一般给单独的网站配备独立的线程池,线程池的设置也只有IDC自己知道。IIS默认的好像是72小时,但可以设置其他的,可能是因为设置的过小,线程回收引起的如果是这样貌似无法解决,除非你改进代码
      

  2.   

    这位老兄,我在线程中已经有每隔4分钟访问一次自己的一个页面了,不过每次用的是独立的HttpWebRequest 
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(strURL + strParams);
                request.Method = "GET";
                SetWebRequest(request, iTimeOut);
                return PreProcessRetString(request.GetResponse(),iEncodeType);
    不是全局的HttpWebRequest,这样他是不是不能维持SESSION,如果我全局的HttpWebRequest对象,他是不是就不会回收了呢?另外的几位朋友,我这是在IDC的空间上,没有其他权限的,我只能上传我的网站上去。
    另外请问,如果优化代码,我应该如何做?
      

  3.   

    以下是我的数据库记录日志:
    19 2010-5-27 0:09:58 Application_End函数被触发 
    18 2010-5-27 0:09:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100527000911,结果[1] 
    17 2010-5-27 0:05:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100527000511,结果[1] 
    16 2010-5-27 0:01:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100527000111,结果[1] 
    15 2010-5-26 23:57:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100526235711,结果[1] 
    14 2010-5-26 23:53:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100526235311,结果[1] 
    13 2010-5-26 23:49:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100526234911,结果[1] 
    12 2010-5-26 23:45:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100526234511,结果[1] 
    11 2010-5-26 23:41:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100526234111,结果[1] 
    10 2010-5-26 23:37:11 四分钟访问一次指定页面:www.xx.com/keeponline.aspx?20100526233711,结果[1] 
    9 2010-5-26 23:33:10 发送线程启动 
    8 2010-5-26 23:33:10 发送线程自动启动 
    7 2010-5-26 23:33:10 网站启动 
    这里可以看到半个多小时后网站的Application_End就被触发了,而我线程回访本网站的页面也没有用。
      

  4.   

    哥们,这么说是我回访的代码写得有问题咯?是不是我改成全局的HTTPREQUEST对象就可以了?
      

  5.   

    你的回访代码需要写在Global里才可以的,