zoukankan      html  css  js  c++  java
  • 【原创】windows7+vs2012 如何安装windows服务

    这次写的这个服务主要是用于定时备份SQLite数据库的。

    所有的备份的参数(备份路径,备份时间间隔)都放在一个配置文件中。

    服务已经用vs写好了,这里主要介绍一下这个服务的安装过程。

    其实服务本身也是一个exe,安装的过程其实是将这个exe存放的位置告诉操所系统,这样你再告诉操作系统什么时候起这个服务(例如我要手动起,或者开机自启动,就相当于把这个程序托管给操作系统了)。

    安装工具:

    我用的是vs自带的安装工具,你可以在桌面左下角  “开始-》Microsoft Visual Studio 2012-》Visual Studio Tools-》Developer Command Prompt for VS2012”,

    就会弹出一个类似DOS的终端,然后你就可以运行安装命令了。

    安装命令是:installutil xxxxx.exe(这个是你的服务的程序,当然你的终端界面首先要进入这个exe所在的路径,如果中断不会的自己百度cd命令)

    卸载命令是:installutil /u xxxxx.exe

    注意:

    如果出现

    An exception occurred during the Install phase.

    System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.

    这是你的电脑有权限的设定,请确保自己是用管理员运行这个终端的(可以右击Developer Command Prompt for VS2012,然后选按管理员运行)。

    补充:

    由于我的服务要求读取的配置应该在exe文件同目录,所以我简单的在文件操作时用了相对路径,这样的后果是找不到配置文件,因为exe文件的路径并不是他的执行路径,他其实是被

    操作系统调用启动的,因该是system32下面的某个exe。

    2014-6-5

    今天要打包服务了,上面的方法是用vs自带的DOS终端,这里面环境变量已经设置好了,所以可以直接调用installutil命令,但是可用户安装包不能这样操作,

    我的方法是找到installutil.exe这个程序,然后和服务程序一起打包,再写一个bat文件来执行这个installutil.exe。

    installutil.exe是.NET里面的工具程序,如果你安装了.NET可以在这个路径下找到C:WindowsMicrosoft.NETFrameworkv2.0.50727。

    如果没有可以先安装.NET或者到网上去下一个。

    2014-7-11

    最终我放弃了使用vs自带的installutil.exe,原因是这个软件和.Net版本有着密切的联系,如果你打包的installutil.exe和你的安装软件不是同一.Net版本的话就无法安装。

    改变的方法是使用采用系统的安装命令SC,简单的用法是 :

    创建服务 sc create 【服务的名称】 start= auto binpath= 【服务程序所在路径】

    删除服务 sc delete 【服务名称】

  • 相关阅读:
    js对象数组(JSON) 根据某个共同字段 分组
    一个 函数 用来转化esSearch 的range 条件
    关于 vuex 报错 Do not mutate vuex store state outside mutation handlers.
    android listview 重用view导致的选择混乱问题
    android SDK和ADT的更新
    Android中adb push和adb install的使用区别
    pycharm中添加扩展工具pylint
    su Authentication failure解决
    Putty以及adb网络调试
    有关android源码编译的几个问题
  • 原文地址:https://www.cnblogs.com/yaoxiaping/p/3745673.html
Copyright © 2011-2022 走看看