当我在类库中创建WCF时,我的svc文件在哪里

时间:2011-09-08 20:37:07

标签: asp.net wcf

我创建了一个包含两个wcf服务的类库。添加wcf项时,它没有添加svc文件。

我是否必须手动将它们添加到我的主要Web项目中?

我怎么能这样做?

2 个答案:

答案 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文件添加到您的网站。