zoukankan      html  css  js  c++  java
  • 保持你的网站激活(不要让IIS回收您的网站)

    你是否曾经打开你的一个网站在你最后显示网页的时候总要等待一段时间,你如果你遇到这个问题,你常常认为是IIS引起的,IIS在不断的回收利用网站资源。其实还有一种方法就是让网站不要“闲”下来,看以下代码:

    代码
    private static void _SetupRefreshAction() { 

        
    //移除之前的动作
        Action remove = HttpContext.Current.Cache["Refresh"as Action;
        
    if (remove is Action) {
            HttpContext.Current.Cache.Remove(
    "Refresh");
            remove.EndInvoke(
    null);
        } 

        
    //获取新的动作 

        Action work 
    = () => {
            
    while (true) {
                Thread.Sleep(
    60000);
                
    //这里代码开始刷新动作  

            }
        };
        work.BeginInvoke(
    nullnull); 

        
    //增加动作到缓存中
        HttpContext.Current.Cache.Add(
            
    "Refresh",
            work,
            
    null,
            Cache.NoAbsoluteExpiration,
            Cache.NoSlidingExpiration,
            CacheItemPriority.Normal,
            (s, o, r) 
    => { _SetupRefreshAction(); }
            );
    }

    把这段代码写在Global.asax的Application_Start(),这样我们开始一个动作时候让网站保持激活,当然你也可以使用Thread来保持这个刷新方法。

    那么,该怎么保持网站的刷新呢?使用WebClient即可实现:

    WebClient refresh = new WebClient();
    try {
        refresh.UploadString(
    "http://www.mysite.com/"string.Empty);
    }
    catch (Exception ex) {
    }
    finally {
        refresh.Dispose();
    }

    这个代码片段使用WebClient发生红HTTP请求给我们的网站,是网站始终保持激活中。是不是很简单呢:)

  • 相关阅读:
    基于用例的工作量估计
    在xmlhttp中传递cookie和表单数据
    swfupload 上传SecurityError Error #2156 拓荒者
    为PetaPoco添加Fill方法 拓荒者
    【转】全面理解javascript的caller,callee,call,apply概念 拓荒者
    Dojo入门:dojo中的事件处理 拓荒者
    mstsc远程连接时的全屏快捷键 拓荒者
    关于DateTime对象序列化为Json之后的若干问题 拓荒者
    PetaPoco的默认映射 拓荒者
    DataTable序列化为JSON字符串 拓荒者
  • 原文地址:https://www.cnblogs.com/liping13599168/p/1638231.html
Copyright © 2011-2022 走看看