wcf系列---- binding的使用(1)


文转自http://www.cnblogs.com/huangxincheng/archive/2011/10/23/2221845.html

作为WCF速成系列,只介绍些项目开发中常用到的实战知识。

 

学习wcf,还是对其中的几个术语要了解一下。wcf中有一个ABC的概念,就是

           第一: "A" 是地址,就是告诉别人我wcf在何处。

第二: "B"是绑定,就是告诉别人应该走什么路才能过来。

第三: "C"是契约:就是告诉别人我wcf这里有哪些东西。

 

项目开发中常用到的三种绑定:

          第一:wsHttpBinding,  这个binding可以认为是webservice的加强版WSE,设计的目的就是用于异构系统的交互(比如java)。

          第二:netTcpBinding,   这个binding可以认为是remoting的加强版,设计的目的就是用于不同机器的.net 程序交互,

          第三: netMsmqBinding,  这个binding可以认为是msmq的加强版本,设计目的就是脱机环境下不同机器的.net程序交互,确保信息不丢失。

     

下面对前二种binding的实际代码运用。

 

wcf系列---- binding的使用(1)_第1张图片

第二步: 既然”C"已经出来了,那么她必须要有承载她的环境,也就是所谓的“宿主”。这里用console来承载。

                 新建console程序。

wcf系列---- binding的使用(1)_第2张图片

  第三步:现在服务处于预开启状态,为了让wcf更加灵活,更加容易控制,就要将相关配置写入到config里面。

              在console类库中新建一个config文件,最后运行console程序正式启动。代码图如下:

    



"wsHttpBindingExample.MyserviceBehavior">

"true" />

"true" />







behaviorConfiguration="wsHttpBindingExample.MyserviceBehavior"
name="wsHttpBindingExample.Myservice">




address=""
binding="wsHttpBinding"
contract="wsHttpBindingExample.IMyservice">



"mex" binding="mexHttpBinding" contract="IMetadataExchange" />




"http://localhost:8732/Design_Time_Addresses/wsHttpBindingExample/Myservice/" />





最后:  wcf已经开启,正在监视着address,然后我们就是先建一个console的Client程序,“引用”中“点击右键”添加服务引用。

wcf系列---- binding的使用(1)_第3张图片

客户端应用代码:

wcf系列---- binding的使用(1)_第4张图片

     如果大家看懂了wsHttpBinding如何使用,那么改成netTcpBinding将会是轻而易举。 因为只要修改两个地方即可。

 

           第一:修改配置文件中的endpoint地址。

wcf系列---- binding的使用(1)_第5张图片

       为了配置大文件传输我们需要重新定义bindings

"1.0" encoding="utf-8" ?>






"wsHttpBindingExample.MyserviceBehavior">

"false" />

"true" />





behaviorConfiguration="wsHttpBindingExample.MyserviceBehavior"
name="netTcpBindingExample.ManFly">




address=""
binding="netTcpBinding"
contract="netTcpBindingExample.IFly"
bindingConfiguration="netTcpBindConfig"
/>
"mex" binding="mexTcpBinding" contract="IMetadataExchange"/>





"net.tcp://localhost:8735/Design_Time_Addresses/netTcpBindingExample/ManFly/" />











name="netTcpBindConfig"
closeTimeout="00:01:00"
openTimeout="00:1:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
transactionFlow="false"
transferMode="Buffered"
listenBacklog="10"
maxBufferPoolSize="2147583647"
maxBufferSize="2147483647"
maxConnections="10"
maxReceivedMessageSize="2147483647"
>

"32"
maxStringContentLength="2147483647 "
maxArrayLength="2147483647 "
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />

"true"
inactivityTimeout="00:10:00"
enabled="false" />

"Transport">
clientCredentialType="Windows"
protectionLevel="EncryptAndSign" />






至此我已经安装此博友的第一篇文章进行了汇总

你可能感兴趣的:(wcf系列---- binding的使用(1))