• 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);  好啦    终于结束了.....实在有看不懂的可以留下联系方式我把实例代码包发给你们哦

  • 相关阅读:
    WeakReference(弱引用)
    男人怎么挑选女人
    同步方法和异步方法
    常指针与指针常量的区别(转帖)
    关于WebService的一些注意事项
    ASP.Net缓存技术
    关于GridView手动绑定的一段代码,一切尽在不言中
    基本三层架构的一些代码
    写给自己看的关于DataList的和RePeater
    ASP.Net绑定数据源
  • 原文地址:https://www.cnblogs.com/hexinxiaoyao/p/3010188.html
Copyright © 2020-2023  润新知