WCF - 在一个服务库上使用多个绑定,包括REST(WebHttpBinding)?

时间:2009-12-07 10:15:29

标签: wcf rest visual-studio-2010-beta-2 .net-4.0-beta-2

我想公开我的服务层(目前用POCO编写的标准类库),用于外部和内部消费。外部客户端将在REST样式API上使用它,而内部我的MVC应用程序将通过net.tcp绑定使用它以获得更好的性能。

我该如何优雅地做到这一点?我可以使用VS2010 Beta 2 REST功能和其他使用标准WCF绑定编写2个用于REST的包装器。

我可以在一个包装器中执行此操作吗?或者更好的方法是将我现有的服务重构为WCF,并使用WebHTTPBinding,WsHttpBinding等不同的绑定在各个端点上公开。

此致

的Ajay

3 个答案:

答案 0 :(得分:1)

您的服务库只包含服务的实施 - 您的服务(和数据)合同应该在他们自己的“合同”程序集中。

托管和使用什么协议的问题由您的服务主机处理 - 这可以是IIS或单独的NT服务或控制台应用程序等。 完全与您的服务类和服务库无关。

所以是的 - 你可以轻松地创建一个服务库,然后在服务主机的众多端点上公开该服务 - 这两个东西应该彼此完全分开。

答案 1 :(得分:0)

当然,您可以在配置文件中添加更多内容或使用代码。

答案 2 :(得分:0)

VS 2010 Beta 2的REST功能本身构建于WCF之上,因此如果您想使用它们,您无论如何都必须将服务重构为WCF服务。此时,正如Dani和marc_s所说,您可以通过配置文件轻松地向服务添加其他端点。