zoukankan      html  css  js  c++  java
  • WCF学习111

    WCF的基础ABC和Endpoint,对于常见的场景如果这么多的组合显然也很复杂,实际的应用中根据具体的场景选择对应的方式
    图书”Programming WCF Services”(WCF服务编程) 对这个组合进行了详细的总结,如下:
    【对于WCF的基础知识可以参阅图书或其他资料】 

    绑定和安全场景

    绑定

    局域网场景

    互联网

    B2B场景

    匿名场景

    无安全场景

    BasicHttpBinding

    No

    No

    Yes

    No

    Yes

    NetTcpBinding

    Yes

    Yes

    No

    Yes

    Yes

    NetPeerTcpBinding

    No

    No

    No

    No

    Yes

    NetNamedPipeBinding

    Yes

    No

    No

    No

    Yes

    WSHttpBinding

    No

    Yes

    Yes

    Yes

    Yes

    WSFederationHttpBinding

    No

    No

    No

    No

     

    WSDualHttpBinding

    No

    Yes

    Yes

    Yes

    Yes

    NetMsmqBinding

    Yes

    No

    No

    Yes

    Yes

    安全场景特性

    特性

    局域网场景

    互联网

    B2B场景

    匿名场景

    无安全场景

    Transport

    Yes

    No

    No 

    No

    No

    Message

    No 

    Yes

    Yes

    Yes

    No

    Service authentication

    Windows

    Ceritificate

    Ceritificate

    Ceritificate

    No

    Client authentication

    Windows 

    ASP.NET

    Ceritificate

    No

    No

    Authorization

    Windows

    ASP.NET

    No/ASP.NET

    No

    No

    Impersonation

    Yes

    No

    No

    No

    No

     

     

    实现参考

    该书描述了一个基于声明的框架类库,使用这个库可以方便的建立以上不用场景的应用,基于这个我实现了一个demo的演示,通过这个过程对WCF有了比较深入的了解,对于小组人员的入门和快速使用比较有用。

    demo下载地址: http://cid-56b433ad3d1871e3.office.live.com/self.aspx/.Public/ProgWCF.rar 

    详细运行参考代码中的Readme.txt和注释

    Intranet

    Transport保护

    使用tcp绑定

    windows集成的安全

    Internet

    只能使用Message形式的保护,需要数字证书

    tcp wsHttp绑定

    使用Membership进行安全认证

    Anoymous

    使用Message形式的保护,需要数字证书

    tcp wsHttp绑定

    None

    消息不保护

    http tcp wsHttp绑定

    B2b

    BasicHttpBinding WSHttpBinding WSDualHttpBinding

    参考:Programming WCF Services [ISBN: 978-0-596-80548-7]

    对WCF的使用进行分类的介绍,实际开发完成涉及到部署的问题,根据如下的资料参考实际情况选择部署方式

    部署方式:自承载、IIS承载和Appfabric承载

    IIS服务承载

    使用svc扩展实现,如下配置

    <add path="*.svc"

    verb="*"

    type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

    validate="false" />

    </httpHandlers>

    如何使IIS能够承载net.tcp等其他协议

    两步配置:

    网站绑定加上net.tcp

    clip_image002

    支持的协议增加net.tcp

    clip_image004

    然后添加的svc服务自动就支持了http和net.tcp绑定

    手动设置无svc文件的服务

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"> 
    <serviceActivations> 
    <!--无svc的服务,须在IIS中net.tcp协议才能启用--> 
    <add relativeAddress="demo.svc" service="WCfSvc.DemoWcf" /> 
    </serviceActivations > 
    </serviceHostingEnvironment> 
      <services> 
    <service name="WCfSvc.DemoWcf"> 
    <!--多个终结点的不同协议支持--> 
    <endpoint address="ws" binding="wsHttpBinding" name="http" contract="Contracts.ICarRentalService"/> 
    <endpoint binding="basicHttpBinding" name="http" contract="Contracts.ICarRentalService"/> 
    <endpoint binding="netTcpBinding" name="tcp" contract="Contracts.ICarRentalService"/> 
    </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
    <behavior> 
    <serviceMetadata httpGetEnabled="true"/> 
    </behavior> 
    </serviceBehaviors> 
    </behaviors

    Hosting的选择

    clip_image006

    根据以上的表选择适合的部署方式即可

  • 相关阅读:
    043 抖音短视频爬取实战
    048 Python里面yield的实现原理
    047 Python面试知识点小结
    001 Glang实现简单分布式缓存
    046 算法的时间复杂度和空间复杂度计算
    042 使用Python远程监视多个服务器和数据库的状态,python,监控,同步
    041基于python实现jenkins自动发布代码平台
    045 chrome浏览器前端调试技巧
    STL学习
    Asio与Boost.Asio
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1966690.html
Copyright © 2011-2022 走看看