博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF寄宿到Windows Service
阅读量:6572 次
发布时间:2019-06-24

本文共 2988 字,大约阅读时间需要 9 分钟。

WCF寄宿到Windows Service[1]

2014-06-14

WCF寄宿到Windows Service


在前面,我们把WCF的服务寄宿到了Host这个控制台项目中了。下面将介绍如何把WCF的服务寄宿到Windows服务中():

1. 删除原来Host控制台项目,然后在solution上右键,新建一个WindowService项目。如下图:

2.对WcfServices.HostingWindowsSerice项目添加对Contracts项目、Service项目和System.ServiceModel的引用。

3.将WcfServices.HostingWindowsSerice项目中的Class1.cs文件重命名为CalculatorHost.cs,然后打开这个文件,里面代码如下:

1 using System.ServiceProcess; 2 using System.ServiceModel; 3 using WcfServices.Services; 4  5 namespace WcfServices.HostingWindowsService 6 { 7     public partial class CalculatorHost : ServiceBase 8     { 9         private ServiceHost _host;10 11         public ServiceHost Host12         {13             get { return _host; }14             set { _host = value; }15         }16 17 18         public CalculatorHost()19         {20             InitializeComponent();21         }22 23         protected override void OnStart(string[] args)24         {25             Host = new ServiceHost(typeof(CalculatorService));26             Host.Open();27         }28 29         protected override void OnStop()30         {31             if (Host != null)32             {33                 Host.Close();34                 Host = null;35             }36 37         }38     }39 }
View Code

4.CalculatorHost.cs[Design]的界面上右键,选择添加安装器(Add Installer)。这时,项目里会自动生成一个ProjectInstaller.cs文件。

5.打开ProjectInstaller.cs[Design]的设计界面,将会出现下图:

6.选中serviceInstaller1,打开它的属性视图(Ctrl W,P),修改属性。如下图所示:

7.接着选中serviceProcessInstaller1,打开它的属性视图,修改属性。如下图:(这里服务账号也可以是其他的。)

8.接下来我们看看这个项目里的program.cs文件。代码如下:

1 using System.ServiceProcess; 2  3 namespace WcfServices.HostingWindowsService 4 { 5     static class Program 6     { 7         ///  8         /// 应用程序的主入口点。 9         /// 10         static void Main()11         {12             ServiceBase[] ServicesToRun;13             ServicesToRun = new ServiceBase[] 14             { 15                 new CalculatorHost() 16             };17             ServiceBase.Run(ServicesToRun);18         }19     }20 }
View Code

 

9.这些都做好了之后,在WcfServices.HostingWindowsSerice项目中添加服务端的配置文件。这个在上一节中也写过,代码如下: 

1 
2
3
4
5
6
7
8
9
10
11
12
13
15
16
17
18
19
20
21
22
23
View Code

 

10.Build项目WcfServices.HostingWindowsSerice,查看生成的文件如下:

将整个debug文件夹中文件拷出来,放到另外一个目录下。比如D:\WCF\CalculatorService中。后面我们注册的windows服务将从这个目录下找exe文件。

11.下面就是要注册了。我们用InstallUtil.exe来注册(当然你也可以用sc)。打开InstallUtil.exe在我的电脑的目录是:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319。你可以从命令行进如这个目录,然后执行InstallUtil命令。也可以在所有程序中找到visual studio Tools,里面的visual studio command prompt命令行工具。执行安装的命令是InstallUtil D:\WCF\CalculatorService\WcfServices.HostingWindowsSerice.exe

12.成功后,你就可以在控制面板->管理工具->服务中找到它了,如下图:

 

 参考:

[1] WCF注册Windows Service 

转载地址:http://rrojo.baihongyu.com/

你可能感兴趣的文章
CentOS之crontab
查看>>
【在线研讨-现场文字】《敏捷开发用户故事分类与组织结构(二期-3)》2012-07-03...
查看>>
Hyper-V 2012 R2 配置存储QoS
查看>>
易语言 --什么情况下 用许可证
查看>>
项目总结:凡事预则立,不预则废!
查看>>
ORA-32004: obsolete and/or deprecated parameter(s)
查看>>
建属于自己的网站
查看>>
[linux] ubuntu 切换默认的/bin/sh
查看>>
Web Bench (网站压力测试工具)
查看>>
boost库之智能指针
查看>>
linux c/c++ GDB教程详解(转载)
查看>>
centos7下安装Python的pip
查看>>
华为HCIE 面试战报
查看>>
C++ 一些知名的库
查看>>
用busybox创建一个不足50M的Linux
查看>>
在redhat server 6 安装gcc-4.5.2
查看>>
我的友情链接
查看>>
自定义View Client 登录方式(一)
查看>>
rsync搭建使用
查看>>
一台服务器上同时运行多个MySQL
查看>>