• 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

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

  • 相关阅读:
    Kafka副本管理—— 为何去掉replica.lag.max.messages参数
    Kafka0.8.2.1删除topic逻辑
    【原创】如何确定Kafka的分区数、key和consumer线程数
    【原创】Kafka console consumer源代码分析(二)
    QGIS源码解析和二次开发
    点云数据中的三维信息提取pcl
    Halcon10.0 + VS2010
    Halcon链接库
    python调用Opencv库和dlib库
    cvtColor
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1966690.html
Copyright © 2020-2023  润新知