【问题标题】:Rest service .net operation contracts during runtime在运行时休息服务 .net 操作合同
【发布时间】:2017-04-09 06:40:40
【问题描述】:

是否可以在运行时将操作合约添加到休息服务?

例如,我们有一个在端点下可用的服务:www.mywebsite.com 已经有一个 operationContract:getName。

但现在我想在运行时添加两个额外的 operationContract:比如 getAdress 和 GetNumber。

【问题讨论】:

标签: asp.net .net rest wcf restful-architecture


【解决方案1】:

主要问题是如何让客户了解新的服务合同。 我认为您可以通过创建 ServiceHost 实例在运行时添加新的服务端点。服务将监听一些不同的地址。这些端点将使用不同的服务合同(接口)。 我认为您不会动态地构建和实现接口(但您可以在.net 中)。您可能会使用一些预定义的接口。在这种情况下,您应该以某种方式通知客户有关新服务合同和地址的信息。要传递和使用此类元数据,您可以:

1) 使用某些“静态”维护服务的双工方法(服务到客户端调用方向) - 以自定义格式将服务元数据提供给客户端;

2) 使用定期客户端调用(轮询)此维护服务 - 出于相同目的;

3) 使用定期网络扫描(按地址范围)并解析 wsdl 以在运行时构建客户端代理。您可以在运行时运行“svcutil /sc ...”来生成代码或使用自定义技术(thisthis 可以提供帮助);

4) 使用中间服务来编排服务和客户端(复杂但强大的方法,this 可以提供帮助);

5) 另外使用wcf discovery(也不是一个简单的方法);

6) 结合使用这些方法。

附言您可以使用一个接口,但在服务支持(实现)某种方法时通知客户端。这将是最简单的方法。

【讨论】:

  • 添加了一些说明
猜你喜欢
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
  • 2012-08-21
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多