在WCF服务中何时/为什么使用多个端点而不是单个端点?
在WCF服务中使用单个端点或多个端点有什么区别?有没有时候你会想用一个而不是另一个 在我的情况下,我们有两个端点:一个用于授权,另一个用于数据。一旦通过Auth端点登录,就可以访问数据端点并访问所有数据在WCF服务中何时/为什么使用多个端点而不是单个端点?,wcf,security,endpoints,Wcf,Security,Endpoints,在WCF服务中使用单个端点或多个端点有什么区别?有没有时候你会想用一个而不是另一个 在我的情况下,我们有两个端点:一个用于授权,另一个用于数据。一旦通过Auth端点登录,就可以访问数据端点并访问所有数据 是否有理由将数据端点拆分为多个端点?Data endpoint Contract当前由多个.cs类组成,这些类都是一个大的部分类的一部分。您可以使用不同的端点按函数进行逻辑分组,或者可以在每个端点的绑定中应用不同级别的安全性。如果您的服务面临不同的潜在客户端组,多个端点非常有意义: 使用带有W
是否有理由将数据端点拆分为多个端点?Data endpoint Contract当前由多个.cs类组成,这些类都是一个大的部分类的一部分。您可以使用不同的端点按函数进行逻辑分组,或者可以在每个端点的绑定中应用不同级别的安全性。如果您的服务面临不同的潜在客户端组,多个端点非常有意义:
- 使用带有Windows凭据的
绑定的一个端点可用于来自防火墙后面的公司内部客户端,这些客户端通过公司Active Directory的身份验证;这种绑定速度快,性能好,使用AD集成进行设置时安全性相对较低net.tcp
- 第二个端点可以使用
,并强制实施传输级安全(wsHttpBinding
)-因此某些客户端可以通过安全链接调用您的服务https://
- 第三个端点可能使用不安全的
,以实现最大的向后兼容性-例如,所有类型的客户端(还有许多非.NET客户端,如Ruby、PHP、其他脚本语言等)都可以连接到此端点;也许,不安全的端点不允许调用所有方法,或者它可能有其他限制(例如,只有在容量允许的情况下,才作为最后一个优先级调用处理)basicHttpBinding
- 第四个端点可能以restful方式通过
公开相同的服务,以便更多的设备(如手机等)可以连接到它webHttpBinding
拥有并公开多个端点可以使您的服务更容易访问,并且您可以从每个场景的“最佳”绑定中获益。您能否扩展“不同级别的安全性”的含义。您是指用户访问端点还是功能性访问,例如Web访问与Intranet访问?如果我有6个或更多的服务合同和一个实现这些合同的类,那么会有性能优势还是劣势?