代码之家  ›  专栏  ›  技术社区  ›  ProfK

为两个不同的客户端提供两种绑定类型的WCF服务

  •  3
  • ProfK  · 技术社区  · 15 年前

    如何公开WCF服务,以便一个使用wshttp绑定的客户机和另一个使用nettcp绑定的客户机都可以使用该服务?

    2 回复  |  直到 12 年前
        1
  •  0
  •   Jagmag    12 年前

    简而言之,您可以通过配置来完成它!

    Have you seen this tutorial? Do check this out .

    它是一个很好的教程,其中包含了使用 Microsoft Service Configuration Editor .

        2
  •  12
  •   marc_s    15 年前

    这都是一个配置问题——当你定义你的服务时,你只需要定义两个端点——一个用于 wsHttpBinding 另一个 netTcpBinding . 就这么简单!

    <system.serviceModel>
       <services>
          <service name="YourNamespace.MyService">
             <endpoint 
                 address="ws" 
                 binding="wsHttpBinding" 
                 contract="YourNamespace.IMyService" />
             <endpoint 
                 address="net.tcp://localhost:8787/MyService" 
                 binding="netTcpBinding"
                 contract="YourNamespace.IMyService" />
           <host>
               <baseAddresses>
                    <add baseAddress="http://localhost:8282/" />
               </baseAddresses>
           </host>
         </service>
      </services>
    </system.serviceModel>
    

    现在,您的服务公开了两个端点:

    • 一个使用 WSHTPTP-绑定 http://localhost:8282/ws
    • 一个使用 NETTCP绑定 tcp://localhost:8787/MyService

    两个端点都针对同一个服务,针对同一个服务契约,例如,提供相同的功能和服务方法。

    WCF中的每个服务端点必须定义WCF的ABC:

    • [A]地址-在哪里可以访问/调用服务?
    • [B]绑定-如何调用服务(协议、设置、安全性等)?
    • [C]合同-此地址的服务提供了什么,暴露了哪些方法?
    推荐文章