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

pet*_*ete 4 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有不同的方式?如何通过同一个应用程序公开我的其他三个服务?

谢谢!

mar*_*c_s 6

您无法将多个服务添加到SVC文件.一个SVC文件=一个服务类.没办法改变这一点.

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

public class YourService : IService1, IService2, IService3
{
  ... 
}
Run Code Online (Sandbox Code Playgroud)

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

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

如果.NET 4是您的选项,请参阅此处的博客文章此处了解更多信息.