专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » windowsxp系统更新:利用Windows系统服务自动更新网站WebSite »正文

windowsxp系统更新:利用Windows系统服务自动更新网站WebSite

来源: 发布时间:星期六, 2009年2月7日 浏览:0次 评论:0
  应用背景:作为个站长为了管理好网站WebSite也为了讨好搜索引擎每天都需要在区别时段更新网站WebSite内容站长需要维护几个网站WebSite每天工作量可想而知如果逢年过节站长没有在电脑旁边或者无法上网这个维护工作也就无法进行

  使用原理:本文介绍了种思路方法来自动更新网站WebSite内容采用个Windows系统服务设置好它URL访问地址每天在特定时间内访问需要更新内容网站WebSite特殊页面(假定这个页面为A);在网站WebSite端设置个审核机制只有通过审核内容才能显示在网站WebSite前端新加信息默认是不审核页面A作用就是从未审核信息中挑出几条进行审核这样就更新了网站WebSite内容对于静态首页页面A还可以生成下首页静态页面当然页面A还可以做更多用途如备份数据库、更改到期用户状态、删除无用临时文件等

  详细原理:

  1)    Windows服务端:

  Windows服务采用.Net Framework2.0框架所以使用时应该先安装好.Net Framework2.0,下载地址:

  http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=zh-cn

  采用个xml文件存储配置信息里面存储需要访问网址举例结构如下:

<?xml version="1.0" encoding="utf-8" ?>
<root>
 <Urls>
  <item url="http://www.shouji138.com" time="3:59"/>
  <item url="http://www.baidu.com" time="11:59"/>
  <item url="http://www.baidu.com" time="13:59"/>
  <item url="http://www.baidu.com" time="15:59"/>
  <item url="http://www.baidu.com" time="16:59"/>
 </Urls>
</root>


  个item代表次访问url是具体网址设置为网站WebSite自动更新url地址可以带查询串来设置更新数量time表示每天访问时间time只能精确到1分钟而且必须保证每个item在同分钟内只有个url任务

  采用个定时器每隔20秒扫描下配置项中是否有需要访问网址如果有则访问次这个网址相关代码如下:

public Job
    {
      .Timers.Timer myTimer = .Timers.Timer(20000);
      myTimer.Elapsed ElapsedEventHandler(myTimer_Elapsed);
      myTimer.Enabled = true;
      myTimer.AutoRe = true;
      XmlDocument xml = XmlDocument;
      xml.Load(AppDo.CurrentDo.BaseDirectory + ConfigurationManager.AppSettings["xmlfile"]);
      xmllist = xml.SelectNodes("//root/Urls/item");
    }
    void myTimer_Elapsed(object source, ElapsedEventArgs e)
    {
      try
      {
        Log.SaveNote(DateTime.Now.("yyyy-MM-dd HH:mm:ss") + " Heart Work!(心跳检测)");
        YourTask;
      }
      catch (Exception ee)
      {
        Log.SaveException(ee);
      }
    }
    void YourTask
    {
      count;
       (count > 10000)
        count = 0;
      for ( i = 0; i < xmllist.Count; i)
      {
         url = xmllist[i].Attributes["url"].Value;
         time = xmllist[i].Attributes["time"].Value;
        //Log.SaveNote(url + "-" + time);
        DateTime workTime = DateTime.Parse(DateTime.Now.ToShortDateString + " " + time);
        //lastwork
         (DateUtil.DateDf(DateUtil.DateInterval.Minute, workTime, DateTime.Now) 0)
        {
          //到了执行时间
           (DateUtil.DateDf(DateUtil.DateInterval.Minute, workTime, lastworktime) != 0)
          {
                     //访问网址如 手机主题 http://www.shouji138.com
            visit(url);
            lastworktime = DateTime.Now;
          }
        }
      }
    }
    void visit( url)
    {
      HttpWebRequest myHttpWebRequest = null;
      HttpWebResponse myHttpWebResponse = null;
      Stream receiveStream = null;
      try
      {
        myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse;
        receiveStream = myHttpWebResponse.GetResponseStream;//得到回写字节流
        Log.SaveNote("访问:" + url);
      }
      catch (Exception ex)
      {
        Log.SaveNote("访问失败:" + url);
        Log.SaveException(ex);
      }
      finally
      {
         (receiveStream != null)
          receiveStream.Close;
         (myHttpWebResponse != null)
          myHttpWebResponse.Close;
      }
    }




  2)    网站WebSite端:

  网站WebSite端应该采用审核机制比如个表News表设置字段isaccept为审核字段1表示已审核0表示未审核新增内容默认为未审核0我们在平时时候多添加些内容到未审核库中然后交给来自动更新更新可以采用任何动态网页技术asp、php、jsp都可以作用就是把未审核内容更改为审核状态为了灵活起见可以设置个表示更新数量查询串变量给如num则更新3条网址就变成http://www.shouji138.com/A.asp?num=3这种形式这个网址可以在Windows服务配置文件中设置好本文重点是讲采用Windows服务来进行网站WebSite更新所以具体网站WebSite端代码我就没有写出来了各位站长可以根据自己网站WebSite情况来编写Windows服务是和网站WebSite端没有业务逻辑关联windows服务只管定期来访问网站WebSite端更新网址而网站WebSite端更新网址只管更新业务逻辑

  最后提供下工具和源代码下载地址:

  Windows服务工具下载:http://www.shouji138.com/aspnet2/files/autopub.rar

  Windows服务源码下载: http://www.shouji138.com/aspnet2/files/autopubsource.rar



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: