通过WCF路由服务将呼叫路由到旧版ASMX Web服务

时间:2011-07-07 20:06:40

标签: wcf asmx wcf-routing

我正在开发一个包含对两个.asmx Web服务的引用的遗留应用程序。我们希望重新构建服务层以遵循更多的企业服务总线模式,其中客户端将其所有调用定向到一个服务,该服务处理将请求路由到适当的服务。

我一直在使用WCF路由服务,并且能够通过RoutingService成功地将呼叫路由到WCF服务,并转到相应的服务。

例如,客户可以拨打电话:

http://routingservice/RoutingService.svc/WcfService

并且路由服务会将其转发到

http://wcfservice/WcfService

通过我在配置中指定的规则

我想以某种方式使用.asmx服务获得相同的结果,我可以只更新遗留应用程序中的Web引用URL以指向路由服务,然后路由服务将请求转发到URL客户端目前正在使用

变化:

http://webservices/LegacyService.asmx

http://routingservice/RoutingService.svc/LegacyWebService

这可能以我想的方式做到吗?

1 个答案:

答案 0 :(得分:6)

我从未尝试过,但理论上它应该没有任何问题。 WCF向后兼容ASMX - 您可以使用WCF客户端与ASMX通信,如果需要访问ASP.NET管道,可以使用WCF代替ASMX以及一些其他配置。只是尝试使用basicHttpBinding的路由端点(用于向后兼容)。对于路由服务,请使用IRequestReplyRouter合同。

可能存在一个问题 - 如果您的ASMX服务正在使用ASP.NET会话,会话密钥将在cookie中传输 - 我不确定路由服务如何处理cookie。