亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#使用windows服務更新站點地圖的詳細示例

2020-01-24 02:42:18
字體:
來源:轉載
供稿:網友

由于公司平臺訪問人數逐漸增多,公司項目的數據庫已經幾次出現宕機現象。為減輕數據庫壓力,我上個月對公司項目做了下調整。把新聞板塊提取出來單獨一個站點,單獨一個數據庫。減少了主站點和數據庫的負擔和壓力。

但放在線上一個月,新聞新的發布數量最少已經有500篇左右。百度只收錄了70個左右,于是想到可能是沒有站點地圖造成的。但怎么定時更新站點地圖呢?

我嘗試使用windows服務來定時更新站點地圖。

首先需要了解下幾個問題。

1、百度收錄的站點地圖(sitemap)的格式。詳情請查看該鏈接:查看

目前我只用到了xml格式的站點地圖,就講下xml格式的站點地圖。

xml格式:

各個標簽的解釋:

<loc>www.example1.com</loc>該頁的網址。該值必須少于256個字節(必填項)。格式為<loc>您的url地址</loc>

<lastmod>2010-01-01</lastmod>該文件上次修改的日期(選填項)。格式為<lastmod>年-月-日</lastmod>

<changefreq> always </ changefreq >頁面可能發生更改的頻率(選填項) 。

有效值為:always、hourly、daily、weekly、monthly、yearly、never

<priority>1.0</priority >此網頁的優先級。有效值范圍從 0.0 到 1.0 (選填項) 。0.0優先級最低、1.0最高。

2、站點地圖更新的頻率問題

由于公司新聞更新一般時間固定在9:30-18:00。每天大概發布10――50篇新聞,所以我設想更新站點地圖的時間在:9:00――19:00,每3個小時更新一次,其他時間不做任何操作,降低數據庫查詢的負擔。

開始寫windows 服務。

1、新建windows服務,給windows起個名字

2、添加安裝程序

雙擊Service1.cs進入視圖界面,右鍵,選擇“添加安裝程序”

添加以后的效果。

serviceInstaller1:服務安裝組件。(主要用于設置 服務名稱、服務描述、服務是否開機啟動或延遲啟動、服務啟動方式等)

serviceProcessInstaller1:服務進程安裝組件(主要用戶設置運行服務的賬戶類型,如:User、LocalService、NetworkService、LocalSystem等)

serviceInstaller1的屬性設置(快捷鍵F4):

屬性說明:

DelayedAutoStart:設置是否自動啟動

Description:服務描述

ServiceName:服務名稱

StartType:啟動類型。有三種:Manual(啟動)、Automatic(自動)、Disabled(不啟動)

serviceProcessInstaller1屬性設置(快捷鍵F4):

屬性說明:

Account:運行服務的賬戶類型。有四種:User、LocalService、NetworkService、LocalSystem。

我選擇的是LocalSystem,意思是:當前系統都能運行。

3、定時觸發問題的一些需要注意的誤區。

定時觸發,大家肯定想到的是Timer組件,但一定要記住。windows服務下是沒有Timer控件的。。。。這里看到的Timer組件是不會定時觸發的,需要自己實現Timer定時觸發的事件,本人曾在此坑深陷多時。。。。

由于本人為了實現定時觸發的事件可控性和可修改性。增加了一個配置文件。配置文件添加方式如圖:

windows服務項目――右鍵――添加――新建項

配置文件設置:

4、定時windows服務代碼:

復制代碼 代碼如下:

public partial class NPcgoNewsService : ServiceBase
    {
        Timer aTimer = new Timer();       //System.Timers,不是form的 
        public NPcgoNewsService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            //一個一直重寫sitemap的服務
            aTimer.Elapsed += new ElapsedEventHandler(aTimer_Tick);
            aTimer.Enabled = true; 
            aTimer.Interval = int.Parse(PublicMethods.GetAppSettings("NewsSiteUpdateTime")) * 1000;    //配置文件中配置的秒數
            aTimer.Start();
        }


        protected override void OnStop()
        {
            this.aTimer.Enabled = false;
            this.aTimer.Stop();
        }

        /// <summary>
        /// timer定時觸發
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void aTimer_Tick(object sender, ElapsedEventArgs e)
        {
            //調用該服務的時間為上午9點――下午18點,其他時間不調用
            if (DateTime.Now.Hour >= 9 && DateTime.Now.Hour <= 19)
            {
                MakeSiteMap make = new MakeSiteMap();
                make.GetBaiDuSiteMap();
            }
        }
    }

生成百度地圖的方法(GetBaiDuSiteMap):

復制代碼 代碼如下:

        /// <summary>
        /// 生成百度站點地圖
        /// </summary>
        /// <returns></returns>
        public void GetBaiDuSiteMap()
        {
            XmlDocument xmlDoc = new XmlDocument();
            //獲取新聞站點地圖的本地保存路徑
            string path = Path.Combine(PublicMethods.GetAppSettings("NewsSiteMapPath"));
            xmlDoc.Load(path);

            //查找根節點
            XmlNode root = xmlDoc.SelectSingleNode("urlset");
            //刪除以前的所有老節點
            root.RemoveAll();

            #region 平臺公告
            //查詢最新100條平臺公告
            List<IT_NEWS> platformnotice = GetPlatformNotice();
            if (platformnotice != null && platformnotice.Count > 0 && platformnotice[0].newsId > 0)
            {
                foreach (IT_NEWS platformNoticeNews in platformnotice)
                {
                    XmlElement xesub1 = xmlDoc.CreateElement("url");

                    XmlElement xe1 = xmlDoc.CreateElement("loc");
                    xe1.InnerText = "http://news.npcgo.com" + "/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程序的名稱

至此,一個服務是徹底完成。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线激情网| 精品亚洲aⅴ在线观看| 久久成人人人人精品欧| 亚洲一区二区国产| 色综合视频一区中文字幕| 亚洲第一精品久久忘忧草社区| 色偷偷888欧美精品久久久| 亚洲国产成人精品电影| 秋霞av国产精品一区| 久久久av一区| 日本中文字幕不卡免费| 亚洲一区二区三区乱码aⅴ| 日韩视频永久免费观看| 狠狠躁天天躁日日躁欧美| 国产做受69高潮| 亚洲人成电影在线| 亚洲亚裔videos黑人hd| 国产午夜精品美女视频明星a级| 一夜七次郎国产精品亚洲| 亚洲天堂开心观看| 欧美午夜视频在线观看| 久久综合久中文字幕青草| 欧美日韩国产麻豆| 亚洲人成在线电影| 97久久伊人激情网| 国产香蕉精品视频一区二区三区| 久久成年人免费电影| 欧美视频精品一区| 久久香蕉频线观| 91在线高清视频| 久久精品国产一区| 欧美激情综合色综合啪啪五月| 欧美日本亚洲视频| 国产香蕉精品视频一区二区三区| 欧美性感美女h网站在线观看免费| 国产精品久久999| 最近2019好看的中文字幕免费| 国产精品视频一区二区高潮| 国产一区二区三区视频| 91国产精品视频在线| 亚洲摸下面视频| 精品福利视频导航| 国产+成+人+亚洲欧洲| 久久久av电影| 久久久久北条麻妃免费看| 欧美丰满少妇xxxxx做受| 日韩在线中文字幕| 亚洲国产日韩欧美在线图片| 久久成人精品视频| 欧美精品手机在线| www.精品av.com| 国产精品你懂得| 亚洲欧美一区二区三区四区| 亚洲成人精品av| 社区色欧美激情 | 国产一区二区色| 国产在线视频91| 亚洲欧美国产制服动漫| 亚洲成**性毛茸茸| 午夜免费在线观看精品视频| 伊人男人综合视频网| 国产欧美日韩精品在线观看| 一区二区三区无码高清视频| 久久精品亚洲94久久精品| 成人黄色免费看| 一级做a爰片久久毛片美女图片| 国产精品久久久久久影视| 欧美大片第1页| 中文字幕精品在线| 日韩在线国产精品| 欧美伦理91i| 在线观看欧美日韩国产| 久久久人成影片一区二区三区观看| 亚洲日本欧美日韩高观看| 国产精品中文在线| 日韩精品免费观看| 国模私拍视频一区| 欧美精品免费播放| 国产精品亚洲自拍| 日韩三级影视基地| 久久久久久久久久久成人| 久久久999国产精品| 亚洲va国产va天堂va久久| 国产欧亚日韩视频| 中文字幕在线看视频国产欧美在线看完整| 91在线观看免费观看| 97精品视频在线观看| 欧美国产日产韩国视频| 欧美成人午夜激情在线| 亚洲美女av网站| 亚洲女人被黑人巨大进入al| 性欧美xxxx视频在线观看| 亚洲一区二区久久久久久久| 亚洲综合av影视| 欧美日韩xxxxx| 亚洲精品98久久久久久中文字幕| 国产精品视频免费观看www| 91在线网站视频| 97av视频在线| 色播久久人人爽人人爽人人片视av| www.欧美免费| 国产视频精品久久久| 亚洲视屏在线播放| 91精品啪在线观看麻豆免费| 欧美大片在线影院| 亚洲精品98久久久久久中文字幕| 成人免费高清完整版在线观看| 成人黄色av网站| 欧美性xxxx极品高清hd直播| 国产精品www网站| 亚洲精品国产精品国自产观看浪潮| 国产精品福利网站| 性色av香蕉一区二区| 久久久精品国产亚洲| 日韩精品中文字幕视频在线| 亚洲人成毛片在线播放| 97超碰色婷婷| 中文字幕亚洲二区| 中文字幕9999| 日韩精品视频在线播放| 欧美亚洲国产日本| 97国产真实伦对白精彩视频8| 久久精品国产电影| 日韩高清免费观看| 日韩av在线最新| 亚洲精品xxxx| 成人性生交大片免费看小说| 久久久久久久久久久久久久久久久久av| 亚洲小视频在线| 国产精品亚洲综合天堂夜夜| 一区国产精品视频| 国产精国产精品| 26uuu另类亚洲欧美日本老年| 欧美午夜丰满在线18影院| 久久99国产综合精品女同| 国产一区二区在线免费视频| 日韩一中文字幕| 欧美性生交大片免费| 欧美性猛交xxxx乱大交蜜桃| 日韩成人在线免费观看| 欧美激情欧美激情| 久久亚洲精品一区| 最新中文字幕亚洲| 亚洲美女av在线| 欧美中文在线观看国产| 成人女保姆的销魂服务| 日韩视频免费在线| 日韩黄色高清视频| 91国产一区在线| 国产精品久久久久99| 亚洲色图国产精品| 精品少妇v888av| 国产不卡在线观看| 精品调教chinesegay| 欧美激情视频在线免费观看 欧美视频免费一| 久久这里只有精品视频首页| 性视频1819p久久| 91高清免费在线观看| 国产一区香蕉久久| 欧美在线视频观看| 国产91露脸中文字幕在线| 国产91久久婷婷一区二区| 欧美中文字幕视频在线观看| 国产欧美在线视频|