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

mcl*_*129 2 wcf wcf-routing asmx

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

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

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

http://routingservice/RoutingService.svc/WcfService
Run Code Online (Sandbox Code Playgroud)

并且路由服务将它转发到

http://wcfservice/WcfService
Run Code Online (Sandbox Code Playgroud)

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

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

更改:

http://webservices/LegacyService.asmx
Run Code Online (Sandbox Code Playgroud)

http://routingservice/RoutingService.svc/LegacyWebService
Run Code Online (Sandbox Code Playgroud)

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

Lad*_*nka 6

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

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