zoukankan      html  css  js  c++  java
  • WCF入门(一)——基本知识

        构建一个WCF程序通常分为三个部分:服务类(Server)、宿主(Host)、客户程序(Client)。有一个很重要的程序集(System.ServeiceModel)要引用,它包含WCF的核心功能。

    主要内容

       1.地址(addresses)

       2.契约(contracts)

       3.绑定(bindings)

       4.端点(endpoints)

       5.寄存

    一、地址(addresses)

       地址由模式、域、端口和路径组成。模式指所用的传输协议如TCP、命名管线、HTTP、MSMQ等,WCF中针对这些协议的模式为net.tcp 、net.pipe、 http 、net.msmq。

       地址通常采用如下格式:
        [基地址]/[可选的URI]
        基地址(Base Address)通常的格式如下:
        [传输协议]://[机器名或域名][:可选端口]

        http://localhost:8001
      http://localhost:8001/MyService
        net.tcp://localhost:8002/MyService
        net.pipe://localhost/MyPipe
        net.msmq://localhost/private/MyService
        net.msmq://localhost/MyService

    二、契约(contracts)

       WCF 的所有服务都会公开为契约(Contract)。契约与平台无关,是描述服务功能的标准方式。WCF 定义了四种类型的契约。

      服务契约: 定义一个接口,给接口附加[ServiceContract] ,给接口方法附加[OperationContract]

      数据契约: 数据契约定义将在客户端与服务器端传送的各种数据类型。定义数据契约时需要使用[DataContract] 和[DataMember] 。

      消息契约: 可以使用消息契约来定制WCF 服务与WCF 客户间相互通讯的SOAP 消息格式。

      错误契约: 定义在服务中如何处理异常,以及这些异常又如何传送到客户端。

    三、绑定(bindings)

       Binding实现的是在客户端和服务端进行通讯的底层细节,包括数据如何传输(比如采用Tcp,Http等),如何解决安全问题(SSL,Message Level Security等),传输的消息的格式(如text/xml,MTOM,binary等)。

         Binding包括三个组成部分:NameSpace,Name和BindingElement

         HTTP协议:BasicHttpBinding 、 WSHttpBinding 和WSFederationHttpBinding 。

         两个HTTP 通道实现双向通讯:WSDualHttpBinding。

         TCP协议:NetTcpBinding。

         P2P:NetPeerTcpBinding。

         命名管道:NamedPipeBinding。

         消息队列:NetMsmqBinding 和MsmqIntegrationBinding。

    四、端点(endpoints)

      端点的用处是方便客户程序调用服务的操作。端点定义了在什么地方可以访问服务、用什么方式访问以及有哪些操作可用,这就是端点的三要素(地址 绑定 契约)。端点可以在程序中设置也可以用配置文件的形式设置。

    五、寄存

      服务做好了后需要能够运行,因为客户在调用服务的时候服务必须是处在运行状态的,这就需要将服务寄存在一个地方,在一些Demo中会使用控制台程序来做宿主寄存服务,除此之外还可以是WinForm程序、WPF应用、Windows 服务、IIS、WAS等。

    参考资料有http://www.cnblogs.com/wujy/archive/2013/04/07/3006196.html

              http://www.cnblogs.com/jillzhang/category/121346.html

  • 相关阅读:
    WPF Caliburn 学习笔记(五)HelloCaliburn
    MSDN 教程短片 WPF 20(绑定3ObjectDataProvider)
    MSDN 教程短片 WPF 23(3D动画)
    比赛总结一
    HDU3686 Traffic Real Time Query System
    HDU3954 Level up
    EOJ382 Match Maker
    UESTC1565 Smart Typist
    HDU3578 Greedy Tino
    ZOJ1975 The Sierpinski Fractal
  • 原文地址:https://www.cnblogs.com/xiaowuzi/p/3546715.html
Copyright © 2011-2022 走看看