【问题标题】:How to route WCF REST services?如何路由 WCF REST 服务?
【发布时间】:2011-09-11 09:21:11
【问题描述】:

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

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

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

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

正在寻找有关正确方法的建议以及任何示例。

【问题讨论】:

    标签: wcf rest architecture c#-4.0


    【解决方案1】:

    没有尝试,但也许编写自定义服务行为可以解决您的问题。看看这里:Extending WCF with Custom Behaviors.

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

    【讨论】:

    • 这就是我最终要做的。编写服务行为扩展并将其与需要进行此验证的服务相关联。
    【解决方案2】:

    看看新的 WCF Web Api 项目中的 HttpMessageHandlers htttp://wcf.codeplex.com 这个机制允许你做一些类似于 Rack 或 WSGI 的事情。我在我的博客http://www.bizcoder.com/index.php/2011/05/22/how-to-get-ahead-with-messagehandlers/ 上有几个例子说明你可以用它们做什么

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 2014-07-15
      相关资源
      最近更新 更多