2012-11-12 26 views
0

我目前有几个C#服务实现类,每个实现类都实现了几个服务契约接口。每个服务实现类位于不同的地址,但其所有服务合约接口都位于同一地址。多个WCF服务实现在一个地址?

想要使用来自多个服务的接口的客户端当前需要了解多个地址。

我想知道是否有可能有几个实现类共享一个地址。例如,目前,客户端可能会连接到Browse.svc,Data.svc,Report.svc等。我可以重新配置,以便客户端只需要访问Service.svc?

在我看来,SOAP Action为WCF提供了一种方法来告诉它应该指示哪个服务实现类请求,所以这可能是可能的。

我真的不想把我所有的实现都打入一个大的服务类。

以下Microsoft文章讨论了这类事情,但似乎没有解决多个服务实现类的问题。

http://msdn.microsoft.com/en-us/library/aa395210.aspx

回答

0

如果你想一个服务,可以对多个服务请求作出回应。看看http://davybrion.github.com/Agatha/

这是WCF的请求/响应模式的实现。

+0

我试图了解阿加莎在几分钟内的情况并不成功。也许我需要更努力;-) 但是,如何RoutingService?这是同一种事情还是不同的? http://msdn.microsoft.com/en-us/library/ee517423.aspx – PeteAC

+0

使用路由服务,您将保留所有端点并为您的路由服务创建一个新端点。通过Agatha,您拥有一个端点,所有服务电话都将收到一个处理。路由服务中服务聚合的目标与Agatha相同。但阿加莎以请求/响应的方式工作。两者各有利弊 –

+0

好的谢谢,我会看看两者。 – PeteAC