2011-05-17 30 views
2

在WCF服务中使用单个端点或多个端点有什么区别?你有没有想过使用一种吗?何时/为什么我会在WCF服务中使用多个端点VS单个端点?

在我的情况下,我们有两个端点:一个用于授权,一个用于数据。一旦通过Auth端点登录,就可以访问Data端点并访问所有数据。

是否有理由将数据端点分成多个端点? Data端点Contract当前由多个.cs类组成,这些类都是一个大型部分类的一部分。

回答

8

如果您的服务正面临着潜在客户的不同群体,多个端点可以使一个很大的意义:

  • 一个使用net.tcp与Windows凭据结合端点可用于公司内部客户端来自防火墙后面,这些防火墙是根据您的公司Active Directory进行身份验证的;这种结合是快速的,高性能的,安全是相对无痛建立与AD集成

  • 第二端点可以使用wsHttpBinding和强制执行传输层安全(https://) - 使某些客户端可以在一个安全的被呼叫服务链接

  • 第三个端点可能使用了不安全的basicHttpBinding以实现最大后向兼容性 - 例如各种各样的客户端(也有很多非.NET客户端,如Ruby,PHP,其他脚本语言等)都可以连接到这个端点;也许,你的不安全端点将不允许调用的所有方法,也可能有其他的限制(例如,作为最后优先呼叫处理,只要容量允许的话)

  • 第四端点可能在暴露你同样的服务webHttpBinding在一个宁静的方式,让更多的设备,如手机等,可以连接到它

拥有和暴露多个端点可以让你的服务更容易到达,你可以从“获益最可能“绑定每个场景。

+0

这很有道理,谢谢 – Rachel 2011-05-17 16:22:36

+0

如果我有6个或更多的服务合同和一个类实现他们,会有任何性能优势或劣势? – 2014-02-25 11:16:37

0

您将按功能使用不同的端点进行逻辑分组,或者使您可以在每个端点的绑定中应用不同级别的安全性。

+0

你能扩展你的意思吗?“不同级别的安全性”。您是指用户访问端点或功能访问,如Web访问还是Intranet访问? – Rachel 2011-05-17 16:10:29

相关问题