我在endpoint.tv上观看了Matt Sniders RoutingService视频,他对服务虚拟化的评论让我思考。我已经更改了所有服务以使用发现服务来宣布自己,下一步我将创建一个服务存储库,以便在宣布服务时路由器服务扩展修改其路由表。
这个想法是任何服务都可以简单地连接到路由器,并调用已知合同的操作。路由器将根据每次发现服务在线或离线通知服务时更新的路由表,知道路由合同的操作请求的位置。
我的问题是如何实现这一目标。我是WCF的新手,更不用说RoutingService所以请耐心等待!我会设置一个过滤表,例如(使用*到通配符任何基于该合约的操作 - 只是一个猜测)?
<filters>
<filter name="RegisterEventFilter" filterType="Action" filterData="CalcLib.ICalcLib/*"/>
<filter name="RegisterAttendeeFilter" filterType="Action" filterData="OrderLib.IOrder/*"/>
</filters>
或者我需要使用EndpointAddressMessageFilter吗?
提前感谢帮助。
克里斯
答案 0 :(得分:0)
我没有尝试将RoutingService与发现服务一起使用,但如果您只想将所有操作(操作调用)重定向到目标服务,则可以使用EndpointName filterType。另外,我不认为Action filterType支持filterData属性中的通配符。这是MSDN article that shows how the various filter types配置的。它漫无边际,因为它覆盖了大多数带有示例的filterType选项,但信息是可靠的。