WCF多个端点和IServices



我只是想掌握如何使用WCF,我想知道是否有人能告诉我端点的想法是否正确。

我一直在看msdn上的视频,现在我正在寻找配置WCF服务的方法。场景是,如果我有多个I服务,例如,我有一个IThis和IThat,并且客户端需要访问这两个服务(注意:他们将使用net.tcp),

  • IThis处理数据库查询和

  • IT独立于数据库处理计算

我假设我必须为IThis和IThat定义单独的端点,它们在客户端中分别引用。或者我会创建一个整体的IThisAndThat服务,该服务在客户端中被引用,并包含两者的功能吗??

还是使用多个is服务开发和处理WCF服务的其他方法?当我问你能为tcp定义基本地址还是只为http定义基本地址?

~谢谢大家,任何帮助或建议都会很棒。

我认为我必须定义IThis和IThat,在客户单独。或者我会创造整体IThisAndThat服务在客户端中被引用,并且包含两者的功能

两者都可以:

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

这个选择完全取决于你。

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

但是:您只能为每个服务实现类定义端点-如果您有一个实现两个服务契约的ThisAndThatService,则不能为IThis定义3个端点,为IThat定义两个不同的端点-您定义的端点是每个服务实现类。

当我问的时候,你能定义基数吗tcp地址还是仅http地址

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

一些基础知识:

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

端点定义了服务的入口点,它包括客户端可以使用的地址、绑定和约定。

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新