• windows服务(c#)开发实例


    为了定时启动服务比如晚上12点 可以通过设置一个计划任务(bat文件 net start 服务名称)启动服务
    在启动时编辑我们需要的代码!!!!!!!!

    CD,改变目录


    增加参数:/D
    参数说明:此参数的作用是快速改变当前目录,比如当前目录是C:\Windows,使用命令“CD/D E:\Tools”可快速切换到E:\Tools目录下。注:只有在Win XP的“运行”文本框中输入“CMD”得到的DOS窗口中才能使用此参数。

    在很多应用中需要做windows服务来操作数据库等操作,比如
    (1)一些非常慢的数据库操作,不想一次性去做,想慢慢的通过服务定时去做,比如定时为数据库备份等
    (2)在.net Remoting中利用windows服务来做Host

    利用vs.net我们可以在几分钟之内建立其windows服务,非常简单

    下面说一下步骤
    1. 新建一个项目
    2. 从一个可用的项目模板列表当中选择Windows服务
    3. 设计器会以设计模式打开
    4. 从工具箱的组件表当中拖动一个Timer对象到这个设计表面上 (注意: 要确保是从组件列表而不是从Windows窗体列表当中使用Timer)
    这个Timer控件的是system.Timer下的.可不是System.Windows.Form.然后添加.

    5. 设置Timer属性,Interval属性200毫秒(1秒进行5次数据库操作)
    6. 然后为这个服务填加功能
    7.双击这个Timer,然后在里面写一些数据库操作的代码,比如
    SqlConnection conn=new SqlConnection("server=127.0.0.1;database=test;uid=sa;pwd=275280");
        SqlCommand comm=-new SqlCommand("insert into tb1 ('111',11)",conn);
        conn.Open();
        comm.ExecuteNonQuery();
        conn.Close();

    8. 将这个服务程序切换到设计视图
    9. 右击设计视图选择“添加安装程序”
    10. 切换到刚被添加的ProjectInstaller的设计视图
    11. 设置serviceInstaller1组件的属性:
         1) ServiceName = My Sample Service
         2) StartType = Automatic (开机自动运行)
    12. 设置serviceProcessInstaller1组件的属性   Account = LocalSystem
    13. 改变路径到你项目所在的bin\Debug文件夹位置(如果你以Release模式编译则在bin\Release文件夹)
    14. 执行命令“InstallUtil.exe MyWindowsService.exe”注册这个服务,使它建立一个合适的注册项。(InstallUtil这个程序在WINDOWS文件夹\Microsoft.NET\Framework\v1.1.4322下面)
    15. 右击桌面上“我的电脑”,选择“管理”就可以打计算机管理控制台
    16. 在“服务和应用程序”里面的“服务”部分里,你可以发现你的Windows服务已经包含在服务列表当中了
    17. 右击你的服务选择启动就可以启动你的服务了
    看看数据库是不是一秒多了5个记录啊

    需要注意的是:
    如果你修改了这个服务,路径没有变化的话是不需要重新注册服务的,如果路径发生了变化,需要先卸载这个服务InstallUtil.exe /u参数,然后再重新安装这个服务,不能直接安装。还有就是windows服务是没有界面的,不要企图用控制的输出方式来输出一些信息,你只能添加一个EventLog,通过WriteEntry()来写日志。

    关于怎么用windows服务来做一个远程服务可以看一下http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetHT15.asp


    3、在设计视图点击右键,选择“添加安装程序”,新增serviceProcessInstaller1和serviceInstaller1两个组件。

    serviceProcessInstaller1属性设置如下:

    Account : localsystem 表示所有用户均可使用本服务。

    serviceInstaller1属性设置如下:

    Description:校讯通模拟话机定时检测服务 表示将要出现在windows服务管理器中的服务描述。

    Displayname:xxt_service 表示将要显示在windows服务管理器中的服务名称。

    Servername:xxt_service:

    Starttype: Automatic 表示服务自动启动。

    4、服务的安装:

    (1)将项目路径\bin\目录下的xxt_service.exe 拷贝至E盘根目录。

    (2)在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下输入命令:

    installutil e:\xxt_service.exe即可完成安装。

    5、服务的启动:

    有两种方式:

    (1)在windows服务管理器中启动

    (2)在命令行输入 net start xxt_service

    6、服务的卸载:

    在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下输入命令:

    installutil e:\xxt_service.exe -u即可完成卸载。





    C# Windows服务安装、卸载批处理代码

    echo 请按任意键开始安装客户管理平台的后台服务. . .
    echo.
    pause
    echo.
    echo 清理原有服务项. . .
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil /U D:\Service\WindowsService1.exe > InstallService.log
    echo.
    echo 清理完毕,开始安装后台服务. . .
    echo.
    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil D:\Service\WindowsService1.exe >> InstallService.log
    echo 服务安装完毕,启动服务. . .
    net start CRMService >> InstallService.log
    echo.
    echo 操作结束,请在 InstallService.log 中查看具体的操作结果。
    echo.
    pause

  • 相关阅读:
    8.17 纯css画一个着重号图标
    8.16 val()和html()的问题
    8.14 git??sourceTree??
    7.27-8.10 Problems
    To be a better me
    【LeetCode刷题】Set and bitset
    【LeetCode刷题】求平方根
    【LeetCode刷题】爬楼梯问题
    大学四年就这样,么了~
    硬件综合实习——51单片机四则运算带括号计算器
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1542624.html
Copyright © 2020-2023  润新知