我只是想掌握如何使用WCF,我想知道是否有人能告诉我端点的想法是否正确。
我一直在看msdn上的视频,现在我正在寻找配置WCF服务的方法。场景是,如果我有多个I服务,例如,我有一个IThis和IThat,并且客户端需要访问这两个服务(注意:他们将使用net.tcp),
-
IThis处理数据库查询和
-
IT独立于数据库处理计算
我假设我必须为IThis和IThat定义单独的端点,它们在客户端中分别引用。或者我会创建一个整体的IThisAndThat服务,该服务在客户端中被引用,并包含两者的功能吗??
还是使用多个is服务开发和处理WCF服务的其他方法?当我问你能为tcp定义基本地址还是只为http定义基本地址?
~谢谢大家,任何帮助或建议都会很棒。
我认为我必须定义IThis和IThat,在客户单独。或者我会创造整体IThisAndThat服务在客户端中被引用,并且包含两者的功能
两者都可以:
- 您可以创建一个单独的服务实现类,一个用于
IThis
,另一个用于IThat
- 或者您可以创建一个同时实现
IThis
和IThat
的单个服务实现类
这个选择完全取决于你。
对于您拥有的每个服务实现类,您可以定义任意数量的端点。因此,如果您有一个实现IThis
的ThisService
,您可以为此定义一个HTTP和一个TCP端点,并且您还有一个实现为其定义TCP端点的IThat
的ThatService
。这完全取决于你。
但是:您只能为每个服务实现类定义端点-如果您有一个实现两个服务契约的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的信息,还有很多需要学习的地方。最好看一些教程或指南,这些教程或指南侧重于你要做的事情。