在 WCF 服务中使用单个端点或多个端点有什么区别?是否有时您想使用一个而不是另一个?
在我的情况下,我们有两个端点:一个用于授权,一个用于数据。通过 Auth 端点登录后,您可以访问 Data 端点并访问所有数据。
是否有理由将 Data 端点拆分为多个端点?数据端点契约目前由多个 .cs 类组成,它们都是一个大的部分类的一部分。
如果您的服务面向不同的潜在客户群体,那么多个端点可能很有意义:
一个使用与 Windows 凭据绑定的端点net.tcp
可用于来自防火墙后面的公司内部客户端,这些客户端已针对贵公司的 Active Directory 进行身份验证;这种绑定快速、高效、安全,使用 AD 集成设置起来相对容易
第二个端点可能正在使用wsHttpBinding
并强制执行传输级安全性 ( https://
) - 因此某些客户端可能会在安全链接上调用您的服务
第三个端点可能使用 unsecuredbasicHttpBinding
以获得最大的向后兼容性——例如,各种客户端(还有很多非 .NET 客户端,如 Ruby、PHP、其他脚本语言等)都可以连接到该端点;也许,您的不安全端点将不允许调用所有方法,或者它可能有其他限制(例如,仅在容量允许的情况下作为最后优先级调用处理)
第四个端点可能会以一种安静的方式公开您的相同服务webHttpBinding
,以便更多设备(如电话等)可以连接到它
拥有和公开多个端点可以使您的服务更容易访问,并且您可以从每个场景的“最佳”绑定中受益。
您将使用不同的端点按功能进行逻辑分组,或者您可以在每个端点的绑定中应用不同级别的安全性。