系统之家 - 系统光盘下载网站!

当前位置:系统之家 > 系统教程 > 自动更新网站?Windows系统服务帮你忙

自动更新网站?Windows系统服务帮你忙

时间:2012-10-03 09:42:30 作者:木木 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20120926/16878.html 手机查看 评论

  Windows自动更新是Windows操作系统的一项功能,当适用于您的计算机的重要更新发布时,它会及时提醒您下载和安装。通过使用自动更新可以在第一时间更新您的操作系统,修复系统漏洞,保护您的计算机安全。这些都是大家很熟悉的功能,但是利用Windows系统服务自动更新网站,这个你知道吗?答案应该是否定的,今天就为大家讲解如何利用Windows系统服务自动更新网站.

  详细原理:

  1) Windows服务端:

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

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

       <?xml version=1.0 encoding=utf-8 ?>

  <root>

  <Urls>

  <item url=https://www.***.com time=3:59/>

  <item url=https://www.***..com time=11:59/>

  <item url=https://www.***..com time=13:59/>

  <item url=https://www.***.com time=15:59/>

  <item url=https://www.***..com time=16:59/>

  </Urls>

  </root>  

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

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

  public Job()

  {

  System.Timers.Timer myTimer = new System.Timers.Timer(20000);

  myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);

  myTimer.Enabled = true;

  myTimer.AutoReset = true;

  XmlDocument xml = new XmlDocument();

  xml.Load(AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings[xmlfile]);

  xmllist = xml.SelectNodes(//root/Urls/item);

  }

  void myTimer_Elapsed(object source, ElapsedEventArgs e)

  {

  try

  {

  Log.SaveNote(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) + Heart Work!(心跳检测));

  YourTask();

  }

  catch (Exception ee)

  {

  Log.SaveException(ee);

  }

  }

  void YourTask()

  {

  count++;

  if (count > 10000)

  count = 0;

  for (int i = 0; i < xmllist.Count; i++)

  {

  string url = xmllist[i].Attributes[url].Value;

  string time = xmllist[i].Attributes[time].Value;

  //Log.SaveNote(url + - + time);

  DateTime workTime = DateTime.Parse(DateTime.Now.ToShortDateString() + + time);

  //lastwork

  if (DateUtil.DateDiff(DateUtil.DateInterval.Minute, workTime, DateTime.Now) == 0)

  {

  //到了执行时间

  if (DateUtil.DateDiff(DateUtil.DateInterval.Minute, workTime, lastworktime) != 0)

  {

  //访问网址,如 手机主题 https://www.shouji138.com

  visit(url);

  lastworktime = DateTime.Now;

  }

  }

  }

  }

  void visit(string 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

  {

  if (receiveStream != null)

  receiveStream.Close();

  if (myHttpWebResponse != null)

  myHttpWebResponse.Close();

  }

  }

  2) 网站端:

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

  作为一个站长,为了管理好网站,也为了讨好搜索引擎,每天都需要在不同的时段更新网站的内容,有的站长需要维护几个网站,每天的工作量可想而知,如果逢年过节,站长没有在电脑旁边或者无法上网,这个维护工作也就无法进行。为此,学习如何利用Windows系统服务自动更新网站,非常有必要,你觉得呢?

发表评论

0

没有更多评论了

评论就这些咯,让大家也知道你的独特见解

立即评论

以上留言仅代表用户个人观点,不代表系统之家立场

其他版本软件

人气教程排行

XP系统推荐

官方交流群 软件收录