这是WCF服务吗?

时间:2015-07-23 18:59:49

标签: c# asp.net .net web-services wcf

我的问题是关于WCF服务。我最近参与了一个使用WCF服务的ASP.NET项目(之前我没有太多接触它们),我对什么是WCF服务感到困惑,什么不是。

我的困惑来自我们正在使用的WCF服务,它似乎不是典型的WCF服务。当我通过在Visual Studio中添加新项目(使用“WCF服务应用程序”模板)创建WCF服务时,它会生成一个带有Service.svc的项目,而项目图标则是Web服务图标。但是,对于另一个WCF服务(用于从Ajax到ASP.NET应用程序的调用),我们有一个看似普通C#项目的项目 - 它的图标是典型的C#项目图标,项目内容仅包含一个调用其他函数的Service.cs文件(不是正常的.svc扩展名)。这个Service.cs文件实现了ServiceContract / ServiceBehavior / OperationContract属性,但是这可能是一个手动创建的WCF服务吗?

在主项目Web.config中有一个标记指向Service.cs文件,而使用WCF模板创建的“真正的”WCF服务不包含此标记。

希望我已经为某人提供了足够的信息,告诉我关注的项目是否实际上是WCF服务?

非常感谢提前!

2 个答案:

答案 0 :(得分:0)

WCF代表Windows Communication基础。 WCF是Web服务+ MSMQ + .NET Remoting + COM +的组合。 如果你将WCF与Web服务进行比较,webservice的限制只是Web服务支持HTTP协议.2]你不能在两个不同的协议上托管webservices.3] webservice不提供安全性,并发控制等。

现在开始使用wcf ..       您可以使用wcf模板创建wcf服务,其他是类库Project。如果您使用类库,那么您可以通过多种方式托管它,例如Self Hosting,Host On IIS即.svc文件,但是如果您使用包含的WCF模板。正如您所提到的SVC文件,您只能在IIS上托管该项目/服务....

答案 1 :(得分:0)

WCF服务可以自托管,并且无需实际使用Visual Studio项目模板即可创建。您需要做的就是一个正确的属性接口,一个实现该接口的类和项目中实例化ServiceHost的代码。大多数人会将服务配置放在app.config文件中,但有些人还喜欢在代码中配置服务。

WCF项目模板只包含内容,因此您可以轻松地在ISS或Windows激活服务(WAS)中托管服务。