我创建了一个包含两个wcf服务的类库。添加wcf项时,它没有添加svc文件。
我是否必须手动将它们添加到我的主要Web项目中?
我怎么能这样做?
答案 0 :(得分:2)
如果您只需要实际的.svc端点,那么您只需要添加一个新的WCF服务项。删除随附的额外文件(通常类似于IService1.cs)以及后面的代码(Service1.svc.cs)。
.svc文件内部应如下所示:
<%@ ServiceHost
Language="C#"
Debug="true"
Service="Service.Service1"
CodeBehind="Service1.svc.cs" %>
只需删除CodeBehind部分,然后将Service值更改为您自己的个人类。只要您的配置已设置(.net 4.0使这个工作变得非常简单),您应该好好去!
答案 1 :(得分:1)
您使用的是哪个版本的.NET?从4.0开始,IIS托管的WCF服务不再需要* .svc文件。
正如Bengel指出的那样,4.0通过提供默认绑定和端点,使配置WCF服务变得更加容易。
您的问题不清楚您的网站是要托管WCF服务,还是仅仅使用它(作为客户端),但是因为您正在寻找.svc文件我倾向于前者
在WCF 3.5中,您需要手动添加* .svc文件,正如Bengel在答案中指出的那样。最简单的方法是添加一个新的文本文件,并自行更改扩展名。
您还需要配置绑定和端点以及所有其他好东西。
如果您使用的是WCF 4.0,则不需要* .svc文件,您可以选择使用WCF提供的默认绑定/端点。
服务地址基于主机的基地址,并且将为每个唯一的绑定/合同创建一个默认端点(因此,如果在NetTcp上运行两个服务,则将获得2个默认端点,如果你有两个服务在NetTcp和WsHttpBinding上运行,你将获得4个默认端点。
您可以指定绑定的值,并通过省略name
属性使其成为默认绑定。
所有这些都有一篇很好的文章 - A Developer's Introduction to Windows Communication Foundation 4,通过示例详细介绍。
长话短说 - 如果您使用的是WCF 4.0,则不需要.svc文件。如果您使用的是WCF 3.5,则需要将.svc文件添加到您的网站。