我正在构建一个 WCF 路由器,它需要充当许多内部 Web 服务(WCF 和 ASMX)的代理。路由部分相当简单,但我不明白服务元数据交换在这个解决方案中是如何工作的。
换句话说:客户端如何为路由器后面的内部服务获取元数据?我是否需要手动向消费者提供 WSDL 文件?我可以以某种方式设置路由器以返回适当的内部服务的元数据吗?
或者也许我的架构完全错误?
我正在构建一个 WCF 路由器,它需要充当许多内部 Web 服务(WCF 和 ASMX)的代理。路由部分相当简单,但我不明白服务元数据交换在这个解决方案中是如何工作的。
换句话说:客户端如何为路由器后面的内部服务获取元数据?我是否需要手动向消费者提供 WSDL 文件?我可以以某种方式设置路由器以返回适当的内部服务的元数据吗?
或者也许我的架构完全错误?
我在这里看到 2 个选项:
参考:
相同的“路由器服务”也可用于为路由器后面的内部服务获取单独的 WSDL。
看看这个线程
您是否考虑过使用简单的 HTTP 代理?所有使用 REST 或 SOAP 的 WCF 都是其核心 HTTP 请求。似乎路由功能(我假设您基于主机名、URL 路径或参数)可以通过代理 HTTP 请求来执行,而无需了解内容。ASP.Net 可以很好地自行清理传入的请求,但您始终可以根据需要添加额外的自定义过滤。