Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用路由服务对WCF服务进行版本控制_Wcf_Api_Versioning_Wcf Routing - Fatal编程技术网

使用路由服务对WCF服务进行版本控制

使用路由服务对WCF服务进行版本控制,wcf,api,versioning,wcf-routing,Wcf,Api,Versioning,Wcf Routing,我的任务是为一套新的WCF服务制定版本控制策略。我读过的大部分文章都建议使用中间路由服务将呼叫转发到适当的服务版本。我理解这是如何工作的,但我质疑这在保护客户免受破坏性更改方面有多大好处 例如,我有两个具有不同端点的服务版本: mycompany.com/API/v1.0/GetCustomer mycompany.com/API/v2.0/GetCustomer 路由服务解决方案将在SOAP消息中查找自定义的“version”头,并将调用路由到适当的服务。如果未找到版本标头,则可以使用最新版

我的任务是为一套新的WCF服务制定版本控制策略。我读过的大部分文章都建议使用中间路由服务将呼叫转发到适当的服务版本。我理解这是如何工作的,但我质疑这在保护客户免受破坏性更改方面有多大好处

例如,我有两个具有不同端点的服务版本:

mycompany.com/API/v1.0/GetCustomer
mycompany.com/API/v2.0/GetCustomer
路由服务解决方案将在SOAP消息中查找自定义的“version”头,并将调用路由到适当的服务。如果未找到版本标头,则可以使用最新版本

或者,我可以公开两个端点,消费者可以调用所需的版本

一种解决方案如何优于另一种?添加路由服务似乎增加了额外的配置级别。这两种解决方案都要求消费者在希望升级时更改其代码

在另一篇文章中问这个问题可能更好,但是维护一个服务的多个版本意味着我们需要在源代码中同时使用合同版本。是否有任何建议的管理方法(例如名称空间)


谢谢

您可以通过向GetCustomer操作发送版本参数来重建服务,并将其作为单个服务进行维护

您可以将路由与WCF操作筛选结合使用。你可以看看