2

我正在开发一个包含对两个 .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

这可以按照我想的方式进行吗?

4

1 回答 1

6

我从未尝试过,但理论上它应该可以正常工作。WCF 向后兼容 ASMX - 您可以使用 WCF 客户端与 ASMX 通信,如果需要访问 ASP.NET 管道,可以使用 WCF 代替 ASMX 并进行一些额外的配置。只需尝试使用路由端点basicHttpBinding(用于向后兼容)。用于路由服务使用IRequestReplyRouter合同。

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

于 2011-07-07T21:05:47.657 回答