下载首页 | 资讯中心 | 文章分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 绿色软件 | 汉化补丁 | |
文章搜索: 分类 关键字
您的位置:首页软件技巧操作系统 → WinVista新技术 WCF开发指南之构建服务
WinVista新技术 WCF开发指南之构建服务
来源:天极yesky 作者:朱先忠编译 加入时间:2006-12-8 访问次数:85 [  ]



WinVista新技术WCF开发指南之构建服务(3)
图4.策略活动图:该图展示了选择一个绑定的过程。

  你应该问自己的第一个问题是,是否通讯服务需要与非WCF客户进行交互。如果回答"是",并且如果客户端是一个旧的MSMQ客户端,那么应该选择NetMsmqBinding-它可以使通讯服务与这样的一个客户端通过MSMQ进行互操作。如果你需要与一非WCF客户端进行互操作并且该客户端期望使用基本的Web服务协议(ASMX Web服务),那么,你可以选择BasicHttpBinding-它能够把通讯WCF服务暴露到外界,就好象它是一个ASMX Web服务一样。

  缺点是你不能利用任何现代WS-*协议。然而,如果非WCF客户端能理解这些标准,那么,你可以选择WS绑定之一,例如WSHttpBinding,WSFederationBinding或WSDualHttpBinding。如果你可以假定客户端是一个WCF客户端,但它要求离线或非连接性交互,那么你可以选择使用MSMQ的NetMsmqBinding来传输消息。如果客户端需要连接的通讯但能够跨越计算机边界被调用,那么你可以选择通过TCP进行通讯的NetTcpBinding。

  如果客户端位于与服务同一台计算机上,那么你可以选择使用命名管道的NetNamedPipeBinding来(IPC)最优化性能。注意,一个使用NetNamedPipeBinding的服务不能接受除它自己以外的来自任何其它计算机的调用,并且这样也会更为安全。你可以基于其它标准(例如,回调需要(WSDualHttpBinding),端对端网络(NetPeerTcpBinding)或联盟安全(WSFederationBinding))来详细地调整绑定选择。

  十. 端点

  每一个服务都关联于一个定义了该服务所在位置的地址,一个定义了如何与服务进行通讯的绑定和一个定义了该服务所实现功能的合同。

  事实上,WCF用端点的形式来形式化描述这种关系。该端点是地址、合同和绑定的一个结合(见图5)。每一个服务必须具有三个端点,而且由服务暴露该端点。从逻辑上讲,端点是服务的接口,并且类似于一个CLR或COM接口。

WinVista新技术WCF开发指南之构建服务(3)
图5.该端点是地址、合同和绑定的结合

  每一个服务必须暴露至少一个业务端点,并且每一个端点都具有一个相同的合同。在一个服务上的所有的端点都具有唯一的地址,而单个服务可以暴露多个端点。这些端点能够使用相同的或不同的绑定并能暴露相同的或不同的合同。你可以使用一个配置文件来以管理方式配置端点或以编程方式来实现端点配置。

 十一. 管理端点配置

  请考虑下列服务定义:

namespace MyNamespace
{
[ServiceContract]
interface IMyContract
{...}
Class MyService : IMyContract
{...}
}

   列表2(见本文相应下载源码)展示了在宿主进程配置文件中要求的入口。管理配置是在大多数情况下的配置,因为它提供灵活性来实现改变服务地址、绑定甚至暴露合同而不必重新构建和重新发布服务。

  源码中的列表3展示了一个配置文件-它定义暴露多个端点的单个服务。注意,这些端点必须提供一个与绑定相一致的基地址(例如,对于HTTP使用WSHttpBinding绑定)。每一个不匹配都会导致在服务加载时刻抛出一个异常。只要URI是不同的,那么你可以使用相同的基地址来配置多个端点:

<service name="MyNamespace.MyService">
<endpoint Address =
"net.tcp://localhost:8001/Service1/"
...
/>
<endpoint
address="net.tcp://localhost:8001/Service2/"
...
/>
</service>

  还可以省略地址-在这种情况下,该服务使用与宿主一起注册的基地址(宿主必须提供一个匹配的基地址):

<endpoint
binding="wsHttpBinding"
contract="MyNamespace.IMyContract"
/>

  可以仅提供一个URI-在这种情况下,地址是在基地址下的相对地址(并且宿主必须提供一个匹配的基地址):

<endpoint
address="SubAddress"
...
/>

  当提供一个基地址时,该端点覆盖宿主所提供的任何基地址:

<endpoint
address="http://localhost:8000/MyService/"
...
/>

  注意,当使用IIS进行宿主时,服务必须使用IIS基地址(在HTTP中使用计算机名+虚拟目录)。
上一页 [1] [2] [3] [4] [5] [6] 下一页
评论人 评论内容摘要(共 0 条,查看完整内容) 得分 0 发表时间
 热点文章
·惊爆!《暗黑破坏神3》将对应全平台
·《荣誉勋章:太平洋之战》中文版上市
·MediaShow魅力四射快速制作音乐电子相册
·《花木兰》完美流程攻略
·轻松可爱 最新10大Q版网络游戏推荐
·2006年暑期新宣布免费网络游戏一览
·photoshop制作水晶球中的精灵
·NVIDIA发布Forceware 93.71 WHQL驱动
·经验分享 微软Word2007实用技巧两则
·国内新记录产生 1M super pi运算仅用9秒
 推荐文章
·微软高官爆料:欧盟对Vista哪些功能不安
·在Google Talk上与QQ、MSN好友聊天
·Word使用过程中的常见问题及其解决
·手把手教你内存终极变相“造假”大法
·NVIDIA联手海盗船 推出自动超频内存
·Windows Vista特殊功能介绍:语音识别
·公安机关检验软件样本 流氓软件制造者面临坐牢危..
·比英特尔UMPC还要小 移动PC新品推出
·性感暴力完美结合 御姐武戏X新画面
·盖茨访谈:我就是微软里的兼职员工
WinXP下载基地 版权所有 Copyright© 2006-2008 WWW.WinXpd.COM, All Rights Reserved. 页面维护: WinXP下载基地(WinXP基D)