WCF-如何向Service.svc添加多个服务?

时间:2010-05-10 14:11:49

标签: wcf

我有4个服务通过服务主机项目运行,当ASP.NET开发服务器通过VS托管它们进行调试时,它可以与我的asp.net应用程序进行良好的通信。

我正在尝试使用WAS在Windows Server 2008计算机上将这些部署到IIS。

我将项目设置为IIS中的应用程序,并将整个配置部分从servicehost项目中的app.config复制到IIS站点的web.config。

在一些恭维问题之后,我现在在导航到http://localhost:8000/Services时获得目录列表

我还创建了一个Service.svc文件,其中包含     <%@ ServiceHost Service = MyApp.AddressService%>

当我导航到localhost:8000 / Services / AddressService时,我收到一条消息,说我已经创建了一个服务,并附加了?wsdl给了我xml来创建一个客户端。

问题是,当我尝试向.svc文件添加更多服务时出现错误。

我应该使用service.svc配置多个服务,还是使用WAS有不同的方式? 如何通过同一个应用程序公开我的其他三个服务?

谢谢!

1 个答案:

答案 0 :(得分:6)

您无法向SVC文件添加多项服务。一个SVC文件=一个服务类。没办法改变它。

但是:您绝对可以在服务类上实现多个服务接口:

public class YourService : IService1, IService2, IService3
{
  ... 
}

然后你有一个SVC文件=一个服务(实现)类= 3个服务合同。

在.NET 4 / WCF 4中,您将能够在web.config中定义服务的URL,并且不再需要SVC文件。

有关详细信息,请参阅this blog post herethis one here,如果.NET 4是您的选项。