WCF(四)windows服务寄宿

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:DebugWCFService.WindowsService.exe”,完成安装。

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

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

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

备注:

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

原文地址:https://www.cnblogs.com/sunice/p/6594732.html