第二章:WCF基础(1)

原文:http://www.wcftutorial.net/Introduction-to-WCF.aspx

终结点EndPoint

WCF服务公布出出一系列的终结点信息,每个终结点都是和外界交互的入口。所有的WCF通信都是通过这些终结点发生的,每个终结点都是由以下三个部分组成的:

Address
基础URL,指示了WCF服务部署的路径。客户端使用url来连接服务
http://localhost:8090/MyService/SimpleCalculator.svc

Binding
Binding描述了客户端通过何种方式与服务端进行通信,有好几种通信协议给服务端和客户端通信,可以根据自己的需求来选择协议。
Binding有多种不同的特征,如下:
传输 - 定义了基本的协议,如HTTP,Named Pipes,TCP和MSMQ等
编码(可选) - 三种类型的编码是可行的Text,Binary或者消息传输优化机制(MTOM),MTOM是一种互操作性的消息格式,可以更有效的传输更大的消息(大于64K)
协议(可选) - 定义在绑定的时候使用的安全机制,传输机制或者可信消息

下面的表格列出了WCF绑定所支持的协议
Binding Description
BasicHttpBinding 基本的Web服务通信,没有安全机制
WSHttpBinding 支持WS-*的Web服务通信,支持事务
WSDualHttpBinding 支持双工契约的Web服务通信,支持事务
WSFederationHttpBinding 支持联合契约的Web服务通信,支持事务
MsmqIntegrationBinding 与MSMQ直接通信的Web服务通信,支持事务
NetMsmqBinding 使用队列与WCF应用进行通信的Web服务通信,支持事务
NetNamedPipeBinding 在同一台计算机上的WCF应用进行通信的Web服务通信,支持双工和支持事务
NetPeerTcpBinding 在不同的计算机之间使用P2P进行通信的Web服务通信,支持双工
NetTcpBinding 在不同的计算机之间进行通信的Web服务通信,支持双工和事务


Contract
具体说明和外部进行通信的终结点所提供的一系列的操作,通常契约文件会提到接口,这样客户端就可以通过这个接口了解契约所提供发操作,每一个操作都是一个简单的交换模式单向,双工,请求/响应

下面这张图说明了终结点的作用



例子:
在创建服务的时候在web.config中编写
<system.serviceModel>
<services>
    <service name="MathService" behaviorConfiguration="MathServiceBehavior">
       <endpoint address="http://localhost:8090/MyService/MathService.svc" contract="IMathService" binding="wsHttpBinding"/> 
      </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior name="MathServiceBehavior">
                <serviceMetadata httpGetEnabled="True"/>
                <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

猜你喜欢

转载自foreversky12.iteye.com/blog/2303888