zoukankan      html  css  js  c++  java
  • WCF(二)将WCF发布到WindowsService

      首先新建WCF服务库。跟上一节的方式一样

      其次呢,建立WindowsService. 

      添加对WCF服务库的引用,配置config。配置方式跟上一节也一样....

      上码:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <system.serviceModel>
    <behaviors>
    <serviceBehaviors>
    <behavior name="Niki.WindowsServiceHost.ServiceWindowsBehavior">
    <serviceMetadata httpGetEnabled="true" />
    <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
    </serviceBehaviors>
    </behaviors>
    <services>
    <service behaviorConfiguration="Niki.WindowsServiceHost.ServiceWindowsBehavior"
    name="Niki.WcfServiceLibrary.Service1">
    <endpoint address="" binding="wsHttpBinding" contract="Niki.WcfServiceLibrary.IService1">
    <identity>
    <dns value="localhost" />
    </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
    <baseAddresses>
    <add baseAddress="http://localhost:8732/Design_Time_Addresses/Niki.WindowsServiceHost/ServiceWindows/" />
    </baseAddresses>
    </host>
    </service>
    </services>
    </system.serviceModel>
    </configuration>

    紧接着编写 WindowsService后台代码

    ServiceHost host=new ServiceHost(typeof(Service1));
    public WCFServiceHost()
    {
    InitializeComponent();
    }

    protected override void OnStart(string[] args)
    {
    host.Open();
    }

    protected override void OnStop()
    {
    host.Close();
    }

    当然了,这里你首先需要引用System.servicemodel库

    好吧,马上就要竣工了。在WindowsService的设计界面中右键,添加安装(Add Installer)

    设置serviceInstaller1 的 starttype属性为 Automatic 当然啦 这是自动的啦。serviceProcessInstaller1的Account 属性为 serviceProcessInstaller1

     重新生成。当然是生成exe文件啦...比如说名字叫XXXXX.exe

    在开始运行中 运行 InstallUtil   XXXXX.exe -i  好吧,这里我偷懒了,你需要在这里添加完整路径。我这只是简写-i呢是安装   -u呢是卸载哦   最后敲回车

    打开服务列表...亲,你不知道怎么打开?那去问问度娘吧。。。。找到你刚才的WindowsService。双击  然后点启动  或者直接右键启动   OK!

    接下来我们测试。到你的配置文件中找出你的基地址

    <host>
    <baseAddresses>
    <add baseAddress="http://localhost:8732/Design_Time_Addresses/Niki.WindowsServiceHost/ServiceWindows/" />
    </baseAddresses>
    </host>

    将后面Http那一串放到浏览器中测试一下,看是不是能正常访问。哼哼~能正常浏览嘛,那就是可以了喽。否则嘛...还用我说么,当然是出错啦。看看你是不是哪里配置不对。

    最后 新建一个测试项目。控制台哒...添加服务应用,当让 引用地址就是刚才基地址里面的啦。然后嘛,您就测测啦

    比如我的就是这个

    ServiceReference1.IService1 service1=new Service1Client();
    var x= System.Console.ReadLine();
    var output= service1.GetData(Convert.ToInt32(x));
    Console.WriteLine(output);  好啦    终于结束了.....实在有看不懂的可以留下联系方式我把实例代码包发给你们哦

  • 相关阅读:
    vue中使用AES.js和crypto.js加密
    vue项目中使用日期获取今日,昨日,上周,下周,上个月,下个月的数据
    vue项目中的路由守卫
    vue中携带token以及发送ajax
    vue项目中的字符串每隔4位一个空格
    vue中Echarts的使用-自选效果
    平衡树——Treap
    2021牛客寒假算法训练营3题解(9/10)
    2021牛客寒假算法训练营1题解(9/10)
    模板、知识点积累
  • 原文地址:https://www.cnblogs.com/hexinxiaoyao/p/3010188.html
Copyright © 2011-2022 走看看