操纵Windows系统服务自动更新网站思绪[网络技术]
本文“操纵Windows系统服务自动更新网站思绪[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
利用原理:本文介绍了一种办法来自动更新网站内容,采取一个Windows系统服务,设置好它的URL拜候地址,每天在特按时间内拜候需求更新内容的网站的特别页面(假定这个页面为A);在网站端,设置一个考核机制,只有通过考核的内容才能显示在网站前端,新加的信息默许是不考核,页面A的作用就是从未考核信息中挑出几条举行考核,这样就更新了网站内容,关于静态首页的,页面A还可以生成下首页静态页面.当然页面A还可以做更多的用处,如备份数据库、更改到期用户状况、删除无用的暂时文件等.
具体原理:
1) Windows服务端:
Windows服务采取.Net Framework2.0框架,所以利用时应当先安装好.Net Framework2.0,下载地址:
采取一个xml文件存储配置信息,里面存储需求拜候的网址,示例构造以下:
<?xml version=1.0 encoding=utf-8 ?>
<root>
<Urls>
<item url=http://www.shouji138.com time=3:59/>
<item url=http://www.百度.com time=11:59/>
<item url=http://www.百度.com time=13:59/>
<item url=http://www.百度.com time=15:59/>
<item url=http://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)
{
//拜候网址,如 手机主题 http://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);
以上是“操纵Windows系统服务自动更新网站思绪[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |