WCF常用的寄宿方式除了IIS寄宿外,还有一种方式是寄宿到windows服务中,跟随系统启动而启动。

1、在项目中选择“添加”--“新建windows服务”

2、打开系统生成的设计界面的代码,引用“using System.ServiceModel;”和WCFService、WCFServer、WCFModel三个项目文件

3、设计界面代码编写和app.config配置文件如下:

namespace WCFService.WindowsService
{
public partial class CalculatorServer : ServiceBase
{
public ServiceHost Host { get; set; } public CalculatorServer()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
if (Host != null)
{
Host.Close();
}
Host = new ServiceHost(typeof(Calculate));
Host.Open();
} protected override void OnStop()
{
if (Host != null)
{
Host.Close();
Host = null;
}
}
}
}

配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="CaclulaterBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="CaclulaterBehavior" name="WCFService.Calculate">
<endpoint address="http://127.0.0.1:9999/Calculate" binding="wsHttpBinding"
bindingConfiguration="" contract="WCFService.ICalculate" />
<host>
<baseAddresses>
<add baseAddress="http://127.0.0.1:9999/Calculate" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>

4、回到设计界面,右键--“添加安装程序”,生成“ProjectInstaller.cs”文件

6、选中serviceInstaller1属性设计器,修改相应属性。

7、选中serviceProcessInstaller1,打开属性设计器

8、生成一下。在windows服务项目的bin/debug文件夹下会产生可执行文件。将整个debug文件拷贝到E盘。

9、执行安装。打开vs开发人员命令提示对话框,定位到E盘debug文件下。输入“InstallUtil E:\Debug\WCFService.WindowsService.exe”,完成安装。

10、在“管理工具”中打开“服务”,可以找到安装的服务。

11、双击,在弹出的对话框中点击“启动”,即可

12、运行客户端,可以得到想要的结果。

备注:

  卸载服务命令:InstallUtil.exe -u WCFService.WindowsService.exe

WCF(四)windows服务寄宿的更多相关文章

  1. WCF配置与服务寄宿

    1.项目框架如下: 2.WCF服务项目 其中WCFService中存放服务契约及其实现,需添加命名空间:System.ServiceModel 3.服务寄宿 WCFHost是一个控制台程序,用于寄宿W ...

  2. InChatter系统之服务端的Windows服务寄宿方式(三)

    为了部署的方便,我们开发Windows服务的服务寄宿程序,这样我们的服务便可以作为系统服务,随着系统的启动和关闭而启动和关闭,而避免了其他的设置,同时在服务的终止时(如系统关闭等)能及时处理服务的关闭 ...

  3. WCF安装Windows服务

    安装图解: 安装命令: 1. 开始 ->运行 ->cmd2. cd到C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319(Framework版本号按I ...

  4. 编写寄宿于windows服务的WCF服务

    由于业务中有些任务需要在后台静默长期运行,或者有些服务队响应的要求比较苛刻,这样的WCF服务就不适合寄宿于IIS中.IIS每隔一段时间w3wp进程会闲置超时,造成服务的运行停止,因此这种耗时或者定时任 ...

  5. WCF服务寄宿IIS与Windows服务 - C#/.NET

    WCF是Windows平台下程序间通讯的应用程序框架.整合和 .net Remoting,WebService,Socket的机制,是用来开发windows平台上分布式开发的最佳选择.wcf程序的运行 ...

  6. WCF服务寄宿IIS与Windows服务

      WCF是Windows平台下程序间通讯的应用程序框架.整合和 .net Remoting,WebService,Socket的机制,是用来开发windows平台上分布式开发的最佳选择.wcf程序的 ...

  7. C#.NET 操作Windows服务承载WCF

    Windows服务的制作.安装可以参考这篇: C#.NET 操作Windows服务(安装.卸载) - runliuv - 博客园 (cnblogs.com) 本篇会在这个解决方案基础上,继续修改. 一 ...

  8. 将WCF寄宿在托管的Windows服务中

    在我之前的一篇博客中我介绍了如何发布WCF服务并将该服务寄宿于IIS上,今天我再来介绍一种方式,就是将WCF服务寄宿在Windows服务中,这样做有什么好处呢?当然可以省去部署IIS等一系列的问题,能 ...

  9. WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样 ...

随机推荐

  1. 03--(二)编程实践中C语言的一些常见细节

    编程实践中C语言的一些常见细节(转载) 对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所 ...

  2. RxSwift源码与模式分析一:基本类

    封装.变换与处理 // Represents a push style sequence. public protocol ObservableType : ObservableConvertible ...

  3. spring rest docs自定义代码片段

    Spring rest docs 文档插件在生成文档时会默认生成6个代码片段,自适应生成其它片段.通过阅读官方文档发现其可以自定义生成的代码片段,但是官方只说了可以自定义模版,修改现有的代码片段的方法 ...

  4. [长期更新]模板&算法学习情况

    这里仅作为自我检查用,模板代码请移步其他博文 标+的表示已学完,标?的表示需要进一步学习,标-的表示有计划但未开始学习,标*的表示暂时没有计划学习 数学 ?BSGS +FFT&NTT ?Luc ...

  5. 使用Ansible安装部署nginx+php+mysql之安装php(2)

    二.使用Ansible安装php 1.php.yaml文件内容 - hosts: clong remote_user: root gather_facts: no tasks: # 安装libseli ...

  6. 邓_ Mysql·笔记

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relation ...

  7. CDH版hbase-0.98.1单机安装

    HBase 的安装有两种方式:单机安装和分布式安装.HBase的单机安装了解即可,大家重点掌握HBase 分布式集群的安装.下面我们分别进行介绍. HBase 单机安装 HBase 需要运行在 Had ...

  8. ie6下position:fixed定位问题

    1. *html{ background-image:url(about:blank); background-attachment:fixed;}2.将需要用固定定位的元素中加上_position: ...

  9. apache 与 nginx的区别

    Nginx 轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源 抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apa ...

  10. 洛谷 U5737 纸条

    U5737 纸条 题目背景 明明和牛牛是一对要好的朋友,他们经常上课也想讲话,但是他们的班级是全校纪律最好的班级,所以他们只能通过传纸条的方法来沟通.但是他们并不能保证每次传纸条老师都无法看见,所以他 ...