由于公司平台访问人数逐渐增多,公司项目的数据库已经几次出现宕机现象。为减轻数据库压力,我上个月对公司项目做了下调整。把新闻板块提取出来单独一个站点,单独一个数据库。减少了主站点和数据库的负担和压力。
但放在线上一个月,新闻新的发布数量最少已经有500篇左右。百度只收录了70个左右,于是想到可能是没有站点地图造成的。但怎么定时更新站点地图呢?
我尝试使用windows服务来定时更新站点地图。
首先需要了解下几个问题。
1、百度收录的站点地图(sitemap)的格式。详情请查看该链接:查看
目前我只用到了xml格式的站点地图,就讲下xml格式的站点地图。
xml格式:
各个标签的解释:
<loc>" + "/notice-" + platformNoticeNews.newsType + "-" + platformNoticeNews.newsId + ".html";
XmlElement xe2 = xmlDoc.CreateElement("lastmod");
xe2.InnerText = Convert.ToDateTime(platformNoticeNews.newsCreateTime).ToString("yyyy-MM-dd");
XmlElement xe3 = xmlDoc.CreateElement("changefreq");
xe3.InnerText = "daily";
XmlElement xe4 = xmlDoc.CreateElement("priority");
xe4.InnerText = "0.2";
xesub1.AppendChild(xe1);
xesub1.AppendChild(xe2);
xesub1.AppendChild(xe3);
xesub1.AppendChild(xe4);
root.AppendChild(xesub1);
}
}
#endregion
xmlDoc.AppendChild(root);
xmlDoc.Save(path);
}
安装windows服务:
需要写一个windows服务安装的批处理和卸载的批处理,都放在windows服务项目的bin/Debug文件夹下。
安装服务,install.bat代码:
复制代码 代码如下:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe GameTradingNewsService.exe
Net Start NPCgoNewsServices
sc config NPCgoNewsServices start= auto
解释:
GameTradingNewsService.exe 是windows服务项目编译以后bin文件中的exe程序的名称。
Net Start xxx 是开启xxx服务
NPCgoNewsServices 是windows服务名称(即:serviceInstaller1属性面板设置的服务名称(serviceName属性))
sc config NPCgoNewsServices start= auto 是设置windows服务启动方式为自动
卸载服务 unstall.bat代码:
复制代码 代码如下:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u GameTradingNewsService.exe
GameTradingNewsService.exe 是windows服务项目编译以后bin文件中的exe程序的名称
至此,一个服务是彻底完成。