windows服务的编写

1.要添加的引用

using System.ServiceProcess;
using System.ServiceModel ;
using WcfServiceLibraryAgain;//自己写的WCF服务的名称

2.写windows服务

public partial class MainService : ServiceBase
{
ServiceHost host; public MainService()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
Type serviceType = typeof(Service1);//托管REST或非REST服务,方式一样。Service1就是要托管的wcf服务的类
host = new ServiceHost(serviceType);
host.Open();
}
}

注意:要将WCF中的配置文件拷贝到windows服务程序的配置文件中。(这点很重要)

手动安装windows服务

1.将Windows服务程序切换到设计视图, 右击设计视图选择“添加安装程序”

 
1
 
2

2.切换到刚被添加的ProjectInstaller的设计视图
设置serviceInstaller1组件的属性:
1) ServiceName = 服务名称
2) StartType = Automatic ,即自动,Manual是手动,剩下那个是禁用,不过这都不重要,安装好后再服务管理器中可以很方便的设置。
设置serviceProcessInstaller1组件的属性
1) Account = LocalSystem,账户一般设置为本地系统
DisPlayName中设置的名字即你打开服务管理器中服务的名称,我这里叫MyService1
然后重新生成一下
3.右键点击开始按钮,选择命令提示符(管理员)(A),也就是以管理员身份运行cmd,按如下路径找到对应安装服务的程序C-windows-Microsoft.NET-Framework-v4.0.30319-InstallUtil.exe,在cmd中输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(即InstallUtil.exe的路径,在其属性中拷贝,必需右键粘贴),回车运行(注意cd 后要留空格)

 
3

右键解决方案,选择在资源管理器中打开文件夹,找到要安装的windows服务的exe文件,WindowService1-bin-Debug,拷贝其路劲,然后再cmd中继续输入命令InstallUtil.exe+空格+路径(注意路径要完整,Debug后还要加上\名称.exe),然后回车运行完成安装,关键截图如下:

 
4
 
5
 
6
 
7

至此服务已安装成功!打开服务管理器查看服务是否存在。

 
8

手动卸载windows服务

如果觉得写的服务有问题或者是其他原因想卸载服务,在cmd中与安装是几乎相同的,第一步完全以样,第二步的命令变为InstallUtil.exe +空格+ –u +路径(注意路径要完整,Debug后还要加上\名称.exe)

 
9

补充:还可以用VS自带的工具完成服务的安装与下载,这时不需要做cmd中的第一步,直接到第二步就可以了,要方便一点,卸载时该用命令\u,下面详细说一下用VS自带的工具怎么卸载服务:

 
10
 
11

这时要注意还是要以管理员身份运行

 
12

安装几乎相同,就不用说了!
总结:手动安装是服务安装最老旧的方法,我们不能一直用这个方法,但是学会了手动安装会让我们对服务的装原理更了解一些,对写自动安装与卸载还是有帮助的,希望对大家有所帮助!

最新文章

  1. Mac eclipse配置Python环境
  2. Objective-C实现发短信和接电话
  3. Redis redis-cli常用操作
  4. String类常用方法。
  5. GDC2016【彩虹六号:围攻 】使丰富的“突破”成为可能的破坏系统
  6. Android(java)学习笔记156:Java虚拟机和Dalvik虚拟机的区别
  7. pip install robotframework-sshlibrary提示: Microsoft Visual C++ 9.0 is required
  8. 《python源代码剖析》笔记 python虚拟机中的函数机制
  9. 扩展Python模块系列(一)----开发环境配置
  10. c/c++再学习:查找算法了解
  11. [Swift]LeetCode130. 被围绕的区域 | Surrounded Regions
  12. vue $refs 无法动态拼接,获取不到对象(转)
  13. [PHP] 算法-数值的整数次方的PHP实现
  14. 利用SharpZipLib进行字符串的压缩和解压缩
  15. SQLServer Management Studio登录框中的“服务器名”填写
  16. lmbench性能分析工具
  17. Linux多台机器配置ssh免登录
  18. 设计模式(16)--Iterator(迭代器模式)--行为型
  19. eclipse neon配置tomcat8无法显示默认页面解决方法
  20. web中显示中文名称的图片,可以这样配置filter

热门文章

  1. 数据库筛选用户,然后去掉一部分(列表求差),再随机返回一个用户。sqlalchemy + python集合(set) + random
  2. 【Record】9.16..9.23
  3. 360随身WIFI作USB无线网卡的做法
  4. js进阶 10-9 -of-type型子元素伪类选择器
  5. NOIP模拟 最佳序列 - 二分 + 单调队列
  6. UUID不失精度,长度改进
  7. 数码测色计获取UIColor的RGB
  8. 微信小程序要调数据 微信小程序 for 循环详解
  9. 【record】10.30..11.6
  10. java做微信支付notify_url异步通知服务端的写法