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 【服务名称】

  • 相关阅读:
    【jsp】怎么在jsp文件中引入静态文件(.js .css)
    【MyBatis】MyBatis之分页
    【MyBatis】MyBatis之如何存储NULL
    【MyBatis】MyBatis之如何配置
    【MyBatis】MyBatis之别名typeAliases标签的使用
    【Spring】SpringMVC之详解AOP
    【Spring】SpringMVC之REST编程风格
    【Spring】SpringMVC之上传文件
    【Spring】SpringMVC之拦截器
    【Spring】SpringMVC之异常处理
  • 原文地址:https://www.cnblogs.com/yaoxiaping/p/3745673.html
Copyright © 2011-2022 走看看