zoukankan      html  css  js  c++  java
  • 一步步学习WCF(3):WCF,我在哪儿能找到你?

         前面我和WCF(mm)见了个面,基本了解了一下WCF的情况,并和她打了个招呼,发现还是很喜欢她的呀,以后怎么找她呢,哈哈,WCF(mm)给我提供了可以找到它的地址,哈哈,羡慕不? 言归正传,开始学习WCF的地址(Address).

         WCF的每一个服务都具有一个唯一的地址(Addresses).地址包括两个重要的元素:服务的位置和传输协议(下次见MM的碰头地点和碰头暗号,有点不恰当)或者用于服务通信的传输样式。服务位置包括目标机器名、站点或网络、通信端口、管道或队列,以及一个可选的特定路径或者URI。URI及统一资源表示,他可以是任意的唯一标示的字符串,例如服务名称或GUID。例如上一步我们简单的WCF实例中的客户端中的:http://localhost:5509/hello.svc

    <client>
     
    <endpoint address="http://localhost:5509/Hello.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IHello" contract="ServiceReference1.IHello" name="BasicHttpBinding_IHello"/>
    </client>

         Address在WCF中的用System.ServiceModel.EndpointAddress对象来表示的,它的结构如下:

          

    Address的组成部分及其作用: 
    1.Uri:指示EndPoint的地址,是必须的
    2.Identity:能保证地址的唯一性,当Uri一致的时候,可以用Identity来区分EndPoint,可有可无 
    3.Headers:为地址提供了一些附加信息,用于Soap Message Filter,最后会添加到Soap消息的Header中
    4.此外,Address还包括IsAnonymous属性,用于指示终节点是否能匿名访问。

         WCF支持的地址的样式有如下:

              1.HTTP,

              2.TCP,

              3.Peer network(对等网),

              4.IPC(基于管道的内部进程通信),

              5.MSMQ(微软消息队列)

         地址通常采用格式如下:

              [基地址]/[可选的URI]

         基地址的通常格式如下:

              [传输协议]://[机器名或域名][:可选端口]

         HTTP地址:

         HTTP使用HTTP协议进行传输,也可以利用https进行安全传输,http地址通常会被用作对外的的基于Internet的服务,并为其指定端口号,例如:http://localhost:8001 ,如果没有指定端口号,则默认为80端口。两个相同宿主的http地址可以共享一个端口,甚至相同的机器。

         TCP地址:

         TCP地址采用net.tcp协议进行传输,通常他还包括端口号,例如:net.tcp://localhost:8002/myservice ,如果没有指定端口号,则默认端口号为808:

    net.tcp://localhost/myservice,两个TCP地址(来自相同的宿主)可以共享一个端口。

         IPC地址:

         IPC地址使用net.pipe进行传输,这以为着他将使用Windows的命名管道机制。在WCF中,使用命名管道的服务只能接受来自同一台机器上的调用。因此,在使用时必须指定明确的本地机器名或者直接命名为localhost,为管道名提供唯一的表示字符串:net.pipe://localhost/mypipe。每台机子只能打开一个命名管道,因此,两个命名管道地址在同一台机器上不能共享一个管道名。    

         MSMQ地址:

         MSMQ 使用 net.msmq 进行传输,及使用了微软消息队列(Microsoft Message Queue,MSMQ)机制。使用时必须为MSMQ地址指定队列名。如果是处理私有队列,则必须指定队列类型,但对于公有队列而言,队列类型可以省略:net.msmq://localhost/private/myservice  net.msmq://localhost/myservice.

         Peer network地址(对等网地址):

         使用net.p2p 进行传输,它使用了Windows的对等网传输机制。如果没有使用解析器,我们就必须为对等网地址指定对等网名,唯一的路径以及端口。(很少用到)

  • 相关阅读:
    hibernate_0100_HelloWorld
    MYSQL子查询的五种形式
    JSF是什么?它与Struts是什么关系?
    nop指令的作用
    htmlparser实现从网页上抓取数据(收集)
    The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the
    FCKeditor 在JSP上的完全安装
    Java遍历文件夹的2种方法
    充电电池和充电时间说明
    吃知了有什么好处
  • 原文地址:https://www.cnblogs.com/peida/p/1287264.html
Copyright © 2011-2022 走看看