发布Windows Service的方法

1、 在默认窗口Service1中右键Add Install,自动生成两个类。

2. 修改serviceInstaller1的属性:

   a)ServiceName =”FirstService”;   //设置服务名称

   b)StartType = Automatic;      //启动的模式有三种:“自动”、“手动”、“禁用”。事实上,在“我的电脑”的“管理”->“服务”中,还有一种模式:“自动(延迟启动)”

   c)Modifiers=public;

还有一些属性,比如DisplayName对应下图中的“显示名称”,ServiceName对应下图中的“服务名称”,而(Name)则对应,这些属性都是可以进行相应的修改的

  

3. 设置serviceProcessInstaller1组件的属性

  1) Account = LocalSystem;  //为最大的权限此属性还包括:LocalService、networkService、User(默认状态,如果使用User,则在安装的时候需要提供用户名和密码),如需要详细了解该属性,可以参照:

http://technet.microsoft.com/zh-cn/system.serviceprocess.serviceprocessinstaller.account(VS.90).aspx

  2) Modifiers=public;

4、修改服务的名称:打开ProjectInstaller.Designer.cs文件,修改this.serviceInstaller1.ServiceName 对应的值即可。

5. 生成解决方案:选择release模式右键生成解决方案,则在相应的路径当中就会出现MyFirstService.exe文件(使用DEBUG模式生成的似乎不能安装)。

6.使用installutil安装新建好的MyFirstService,方法如下:

  一、打开C:\Windows\Microsoft.NET\Framework64\v4.0.30319目录,找到InstallUtil.exe文件。

  二、把该文件复制到你生成服务的根目录下。

    

  三、使用命令:在cmd中定位到你的服务所在的目录(即InstallUtil.exe所在的目录),使用InstallUtil 服务名.exe进行安装。

    

四:用命令:installutil  /u  服务的名称.exe,点击运行,即可卸载服务。

五:使用命令打开services.msc即可找到你的服务啦。

以下有几个需要注意的问题:

第一:上述二的“服务绝对路径”犹如:e:\新建文件夹\test\MyFirstService\MyFirstService\bin\release\MyFirstService.exe,在这个地方需要注意的是:必须选择release下生成solution。默认是在debug下生成solution。

第二:针对window7用户,在安装的过程中容易出现的几个错误:

  • 使用的电脑不是使用系统管理员的账号登录,则会出现下面的错误。(我已经做过测试),特别是在使用window7的用户特别需要注意,系统默认system账号是“禁用”模式。

  

  • 第二种错误的可能就是服务已经存在,则会出现下面的错误

  

为了避免这种错误的发生,我们应该在安装服务的时候首先进行第三步(即如果可以的话,首先卸载已存在的服务)。

原文参考:http://www.cnblogs.com/YanPSun/archive/2010/05/22/1741381.html

使用InstallUtil发布windows服务的更多相关文章

  1. 发布 Windows 服务

    1. 如何新建 Windows 服务 打开VS,“新建项目”-->“windows 桌面”-->“windows 服务”: http://www.cnblogs.com/sorex/arc ...

  2. 使用Jenkins自动发布Windows服务项目

    不同于发布Web项目,自动发布Windows服务项目需要解决以下几个问题: 如何远程停止和开启服务?需要在发布前停止服务,在发布完成后开启服务. 如何上传编译文件到目标服务器? 问题1:如何远程停止和 ...

  3. 使用InstallUtil对Windows服务进行安装与卸载

    关于Visual Studio 2012中使用InstallUtil对Windows服务进行安装与卸载的文章,在MSDN中的http://msdn.microsoft.com/en-us/librar ...

  4. 使用C#创建Windows服务 并发布Windows 服务

    一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.创建Windows Servic ...

  5. InstallUtil在windows服务中的使用(转)+ 服务安装的注意事项

    1.  新建一个Windows Service的方法: 1. 打开Visual Studio 2008新建一个project Solution: 2. 选择Windows->windows Se ...

  6. 发布windows服务的批处理

    安装bat: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe WatchWinService.exe pause 卸载bat ...

  7. 使用InstallUtil安装及卸载Windows服务的具体操作 Visual Studio 2012版本

    关于Visual Studio 2012中使用InstallUtil对Windows服务进行安装与卸载的文章,在MSDN中的http://msdn.microsoft.com/en-us/librar ...

  8. netcore一键nssm发布为windows服务

    AntDeploy 是我开发一款开源一键部署工具包 发布功能支持: docker容器一键部署 docker镜像一键发布 支持iis一键部署 windows服务一键部署 linux服务一键部署 支持增量 ...

  9. windows服务的创建、安装、调试全过程及引发的后续学习

    前几天做项目的时候需要用到window服务,研究一段时间,算是掌握了最基本的使用方法吧,现总结如下: 引言:在项目过程中碰到一个问题:需要不断的扫描一个大型数据库表,并获取dataset,以便做后续的 ...

随机推荐

  1. boost::asio 学习

    安装 下载-解压 指定安装目录 ./bootstrap.sh --prefix=/usr/local/boost_1_68_0 查看所有必须要编译才能使用的库 ./b2 --show-librarie ...

  2. AJAX心得

    持续补充... AJAX的核心是异步对象XMLHttpRequest对象,一个具有程序接口的JavaScript对象,能够使用超文本传输协议(HTTP)链接一个服务器. 这是一段标准的AJAX执行代码 ...

  3. Hello SIP Protocol

    SIP Request Line Request-Line = Method SP Request-URI SP SIP-Version CRLFMethod:        1. REGISTER ...

  4. 网络编程初识和socket套接字

    网络的产生 不同机器上的程序要通信,才产生了网络:凡是涉及到倆个程序之间通讯的都需要用到网络 软件开发架构 软件开发架构的类型:应用类.web类 应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌 ...

  5. copy other

    DELPHI基础开发技巧 ◇[DELPHI]网络邻居复制文件 uses shellapi; copyfile(pchar('newfile.txt'),pchar('//computername/di ...

  6. python3 第二十三章 - 函数式编程之Partial function(偏函数)

    要注意,这里的偏函数和数学意义上的偏函数不一样,偏函数是2.5版本以后引进来的东西,属于函数式编程的一部分.前面章节中我们讲到,通过设定参数的默认值,可以降低函数调用的难度.而偏函数也可以做到这一点. ...

  7. 解决win10系统无法安装.NET Framework 3.5

    方法1:“我的电脑”,单击右键选择“管理” 在打开的“计算机管理”窗口中依路径“服务和应用程序—服务”打开,在列表中找到“Windows Update”并双击打开. 启动类型:自动. 服务状态下面点击 ...

  8. 基于OpenCV的图书扫描识别程序开发

    1.AndroidStudio环境配置 https://www.cnblogs.com/little-monkey/p/7162340.html

  9. ABP框架系列之十三:(Authorization-授权)

    Introduction Almost all enterprise applications use authorization in some level. Authorization is us ...

  10. jsp和html的区别

    html是超文本标记语言,只要有浏览器,就可以显示出来了. jsp是java server page就是在java服务器端的页面,需要通过jdk的编译才可以显示在客户端的浏览器上. 不仅如此,jsp还 ...