如何路由WCF REST服务?

如何路由WCF REST服务?,wcf,rest,architecture,c#-4.0,Wcf,Rest,Architecture,C# 4.0,计划使用服务路由(在WCF/REST上)在请求到达实际服务之前执行一些常见任务。现在我读了更多关于它的内容,看起来RoutingService上还不支持REST,建议使用System.Web.Routing或ARR 路由器中需要进行的是密钥验证、头值提取和版本控制 ARR看起来不太合适,因为它只是路由,没有我们可以访问的“处理程序”。System.Web.Routing看起来像许多自定义实现,可能会降低WCF的效率 我所考虑的一个老派替代方案是在一个责任实现链中具有通用功能,并将其组合到每个服务

计划使用服务路由(在WCF/REST上)在请求到达实际服务之前执行一些常见任务。现在我读了更多关于它的内容,看起来RoutingService上还不支持REST,建议使用System.Web.Routing或ARR

路由器中需要进行的是密钥验证、头值提取和版本控制

ARR看起来不太合适,因为它只是路由,没有我们可以访问的“处理程序”。System.Web.Routing看起来像许多自定义实现,可能会降低WCF的效率

我所考虑的一个老派替代方案是在一个责任实现链中具有通用功能,并将其组合到每个服务中。这有一个缺点,即N个服务在N个位置被引用。但如果我不想弄乱端点的WCF处理,这越来越像是唯一的选择


我正在寻找一个正确方法的建议,以及任何示例。

没有尝试过,但也许编写一个定制服务行为可以解决您的问题。请看这里:


其想法是使用自定义行为扩展WCF引擎,然后使用此行为附加您的服务。这对于服务来说是透明的。

看看新WCF Web Api项目中的HttpMessageHandlerhtttp://wcf.codeplex.com 这种机制允许您执行类似于Rack或WSGI的操作。在我的博客上,我举了几个例子,说明你可以用它们做些什么

这就是我最后要做的。编写了服务行为扩展,并将这些扩展与需要进行此验证的服务相关联。