WCF多个端点和服务

时间:2011-05-30 02:42:50

标签: wcf wcf-endpoint

我只是想尝试使用WCF,如果有人能告诉我我是否对端点有正确的想法,我就会徘徊。

我一直在处理msdn上的视频,现在我正在徘徊配置WCF服务的方式。情况是我有多个IServices,例如这样我就有了IThis和IThat,并且客户端需要访问权限(注意:他们将使用net.tcp),

  • IThis处理数据库查询,

  • IThat处理独立于数据库的计算,

我假设我必须为IThis和IThat定义单独的端点,这些端点在客户端中单独引用。或者我是否会创建一个在客户端中引用并包含两者功能的整体IThisAndThat服务?

或者是使用多个IServices开发和处理WCF服务的其他方法吗?虽然我问你能为tcp定义基地址还是只定义http?

〜谢谢大家,任何帮助或指示都会很棒。

2 个答案:

答案 0 :(得分:4)

  

我认为我必须定义   IThis和。的单独端点   那是在那里引用的   客户分开。或者我会创造   一个整体的IThisAndThat服务   在客户端被引用并且被引用   包含??

的功能

你可以做到这两点:

  • 您可以创建单独的服务实施类 - 一个用于IThis,另一个用于IThat
  • 或者您可以创建一个实现IThisIThat
  • 的服务实现类

这个选择完全取决于你。

对于您拥有的每个服务实施类,您可以定义您希望拥有的任意数量的端点。因此,如果您有ThisService实施IThis,您可以为其定义HTTP和TCP端点,并且您还有ThatService实现IThat,您可以为其定义TCP端点。这完全取决于你。

:您只能为每个服务实施类定义端点 - 如果您有ThisAndThatService实施两个服务合同,则无法定义3个端点对于IThisIThat的两个不同的 - 您定义的端点是按服务实现类。

  

我问你能不能定义基数   tcp的地址或仅http?

是的,绝对 - 您可以为各种寻址方案(http,net.tcp,net.msmq,net.pipe等)定义基地址。

答案 1 :(得分:1)

一些基础知识:

每个服务都有一个或多个端点。端点特定于其相关服务,即每个端点只能属于一个服务,不能在服务之间共享。

端点定义服务的入口点 - 它包含可供客户端使用的地址,绑定和合同。

不同的端点必须具有不同的地址,并且可以具有不同的绑定和契约(即它们不必具有)。通常,不同的端点具有不同的绑定 - 即传输协议。如果特定客户只能访问某些操作,他们可以拥有不同的合同。

最后,您的服务必须实现其各个端点公开的所有合同。

这是一个非常简洁明了的MSDN页面,它描述了这些概念。 http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/9f4391e9-8b9f-4181-a081-860d42b992a9/

网上有很多关于WCF的信息,还有很多需要学习的地方。最好看一些专注于你想要做的教程或指南。