• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#使用windows服务更新站点地图的详细示例

c#使用windows服务更新站点地图的详细示例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#示例,c#代码示例,c#程序示例,windows示例图片,windows7示例音乐等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

由于公司平台访问人数逐渐增多,公司项目的数据库已经几次出现宕机现象。为减轻数据库压力,我上个月对公司项目做了下调整。把新闻板块提取出来单独一个站点,单独一个数据库。减少了主站点和数据库的负担和压力。

但放在线上一个月,新闻新的发布数量最少已经有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服务代码:

        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();
            }
        }
    }
</div>

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

            //查找根节点
            XmlNode root = xmlDoc.Select

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c#中合并excel表格的方法示例
  • C#裁剪,缩放,清晰度,水印处理操作示例
  • C#获取HTML文本的第一张图片与截取内容摘要示例代码
  • C#实现创建桌面快捷方式与添加网页到收藏夹的示例
  • C#实现的微信网页授权操作逻辑封装示例
  • C#代码实现短信验证码接口示例
  • C#信号量用法简单示例
  • C#实现冒泡排序算法的代码示例
  • C#微信公众号与订阅号接口开发示例代码
  • C#中使用基数排序算法对字符串进行排序的示例

相关文章

  • 2017-05-28C# 系统热键注册实现代码
  • 2017-05-28C#控制台模拟电梯工作原理
  • 2017-05-28C#绘制椭圆的方法
  • 2017-05-28c#文件的复制,移动,创建(实例代码)
  • 2017-05-28Winform实现调用asp.net数据接口实例
  • 2017-05-28C#使用Parallel类进行多线程编程实例
  • 2017-05-28C#实现由四周向中心缩小的窗体退出特效
  • 2017-05-28C#选择排序法实例分析
  • 2017-05-28C#自动生成漂亮的水晶效果头像的实现代码
  • 2017-05-28深入C# 内存管理以及优化的方法详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 简单实现C#异步操作
    • 深入解析c#中枚举类型的定义与使用
    • C#使用RenderControl将GridView控件导出到EXCEL的方法
    • C#实现把txt文本数据快速读取到excel中
    • C#随机生成Unicode类型字符串
    • C#批量更新sql实例
    • 深入Resource实现多语言支持的应用详解
    • C#使用linq查询大数据集的方法
    • C#线程执行超时处理与并发线程数控制实例
    • C# 对象持久化详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有