配置部分中的服务节点/部分与客户端节点/部分之间有什么区别?为什么在一个部分中配置端点而不是另一个部分?哪种互操作性最好?
我目前正在构建一个与另一个服务进行通信的服务。我有我的客户端点和其他服务的端点。 Visual Studio似乎将所有端点都归入Client节。
我认为客户端节点是供您消费的,服务节点是用于生产的。但是当您创建新的wcf服务时,visual studio会将您的新服务端点设置放在客户端节点下。我已经在两个部分之间移动了我的终点,试图弄清楚它们之间的区别。
我应该何时使用服务而不是客户?
<system.serviceModel>
<services>
<service> <!--I noticed some tutorials and using wcf config edit tool
puts producer endpoint settings here -->
<endpoint blah settings/>
<endpoint blah settings/>
</service>
</services>
<client> <!--Visual Studio puts both producer and consumer endpoint
settings here -->
<endpoint blah settings />
<endpoint blah settings />
<endpoint blah settings />
</client>
<bindings>.....
</system.serviceModel>
答案 0 :(得分:0)
可以为服务的使用者和服务的发布者共享WCF web.config (或 app.config )中的许多设置包括:
然而,正如您所发现的,某些配置特定于服务。编写良好的服务通常指定:
通过在客户端和服务器之间划分配置,WCF能够更好地知道在哪里寻找端点。
哪种互操作性最佳?
我认为这与它无关。 WCF是实现互操作性的手段但仅仅通过使用WCF并不意味着您将实现它。当双方同意说某一特定服务合同时,就建立了互操作性;规范数据模型;数据转换;消息版本或SOA Patterns.org定义的许多其他模式因此,您必须遵循各种模式。例如如果您更改服务合同上的方法但尚未更新客户端,那么您可以通过破坏服务的架构来破坏可互操作性。
Visual Studio似乎将所有端点归入客户端部分
如果您的WCF流程既是WCF服务的消费者也是生产者,那么它不应该将所有端点置于
之下