0

我是 WCF 的新手。请告诉我为 wcf Web 服务创建多个端点有什么好处?

您还可以帮我举一个例子,说明如何在 IIS 中托管此类服务以及 wcf 客户端如何连接到提供的确切端点。

谢谢。

4

2 回答 2

2

提供不同端点的好处是每个端点可以使用不同的绑定。这样他就可以根据客户端的能力选择合适的绑定。例如,您可以为 Java、PHP 等客户端公开一个可互操作的端点,以及一个可能更快但仅适用于 .NET 客户端的专有二进制端点。

每个端点都有地址、绑定和合约。因此客户端可以选择他想要使用的服务端点。

在 IIS 中托管 WCF 服务,您有两种可能性:在只有 HTTP 绑定可用的 ASP.NET 应用程序中(basicHttpBinding、wsHttpBinding、webHttpBinding...)或在可以使用二进制绑定的 WAS(仅限 IIS 7.0)中. 从客户端的角度来看,您将服务引用添加到指向给定服务 url 的客户端项目并使用该服务。这是另一篇讨论这个问题的文章。

于 2011-09-16T11:27:26.530 回答
1

根据经验:

  • 使用不同的绑定,例如BasicHttpBinding用于 Java 客户端的绑定,同时WsHttpBinding用于 .NET 客户端。还有一些是HTTPS,另一些是HTTP......

  • 划分和暴露不同的合约/接口。例如,您有一个公开许多操作的接口,并且您有一个简化的接口来执行基本操作,然后您将第二个接口发布到外部,因此内部客户端使用端点作为扩展接口,而外部客户端使用另一个接口。

例如

interface IFoo
{
   void DoBasic();  
}

interface IFooInternal : IFoo
{
   void DoMore();  
}

现在你有一个实现两者的类:

public class Foo : IFooInternal 
{
    ....
}

现在,当实现在同一个类中时,您只向外部公开一个。

于 2011-09-16T11:36:32.570 回答