• 从2018.10.23到2018.10.30中遇到的一些技术难点和解决方案


    通过VS 2008创建一个空白的解决方案,添加如下四个项目。项目的类型、承载的功能和相互引用关系如下,整个项目在VS下的结构如图2所示。

    • Contracts一个类库项目,定义服务契约(Service Contract),引用System.ServiceMode程序集(WCF框架的绝大部分实现和API定义在该程序集中);
    • Services一个类库项目,提供对WCF服务的实现。定义在该项目中的所有WCF服务实现了定义在Contracts中相应的服务契约,所以Services具有对Contracts项目的引用;
    • Hosting一个控制台(Console)应用,实现对定义在Services项目中的服务的寄宿,该项目须要同时引用Contracts和Services两个项目和System.ServiceMode程序集;
    • Client一个控制台应用模拟服务的客户端,该项目引用System.ServiceMode程序集。--摘自蒋金楠的《我的WCF之旅(1)》

    然后在Contracts中通过应用ServiceContractAttribute特性将接口定义成服务契约【ServiceContract】,然后在想要的操作方法上面显式地应用OperationContractAttribute特性。


    服务契约创建完成之后,再来创建实现服务契约来创建具体的WCF服务

    然后在通过代码来寄宿在控制台上

    再来添加终结点和定义服务行为

      1: <?xml version="1.0" encoding="utf-8" ?>
       2: <configuration>
       3:     <system.serviceModel>
       4:         <behaviors>
       5:             <serviceBehaviors>
       6:                 <behavior name="metadataBehavior">
       7:                     <serviceMetadata httpGetEnabled="true" httpGetUrl="http://127.0.0.1:9999/calculatorservice/metadata" />
       8:                 </behavior>
       9:             </serviceBehaviors>
      10:         </behaviors>
      11:         <services>
      12:             <service behaviorConfiguration="metadataBehavior" name="Artech.WcfServices.Services.CalculatorService">
      13:                 <endpoint address="http://127.0.0.1:9999/calculatorservice" binding="wsHttpBinding"  contract="Artech.WcfServices.Contracts.ICalculator" />
      14:             </service>
      15:         </services>
      16:     </system.serviceModel>
      17: </configuration>
    然后客户端再添加引用

    然后就可以在客户端调用服务器端方法了!
  • 相关阅读:
    java8
    Python isinstance()
    Python3 File next()
    np.array() 与 np.mat() 比较
    np.nonzero()
    np.dot()
    算法之归并排序的应用 —— 小和问题以及逆序对问题
    递归过程以及递归master公式
    算法之异或运算及其应用
    算法之二分法及其应用
  • 原文地址:https://www.cnblogs.com/yourSixUncle/p/9879921.html
Copyright © 2020-2023  润新知