【问题标题】:using wildcards in ServiceRoute在 ServiceRoute 中使用通配符
【发布时间】:2011-08-01 13:21:56
【问题描述】:

我有一个 WCF 应用程序,它曾经有多个服务,但现在我们已将它们重构为一个服务,但客户仍会在其旧 URL 上调用它们。

为了适应这一点,我使用 RouteTable 将它们路由到像这样的单个实现

RouteTable.Routes.Add(new ServiceRoute("Services/MyoldService.svc",
                             new MyServiceFactory("MyoldService"), typeof(Service1)));

是否可以通过在 ServiceRoute 的 url 模式中使用某种通配符来指定所有服务都转到单个实现?

类似

RouteTable.Routes.Add(new ServiceRoute("Services/*.svc",
                             new MyServiceFactory("MyoldService"), typeof(Service1)));

或任何其他实现相同目标的方式。

【问题讨论】:

标签: c# wcf


【解决方案1】:

尝试使用 {dontcare} 而不是 * 由于 ServiceRoute 继承自 Route 这似乎应该基于 MSDN 文档工作

【讨论】:

  • 这似乎对我不起作用,似乎不喜欢大括号。
  • reference code 看来,如果找到大括号,它会抛出异常。如果我理解正确,有人可以澄清一下吗?
【解决方案2】:

我的建议是通过 IIS url 重写来做到这一点,这确实允许通配符:

http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-22
    • 2016-05-10
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多