我的问题是关于WCF服务的。我最近参与了一个使用WCF服务的ASP.NET项目(我以前没有太多接触过它们),我对什么是WCF服务,什么不是,感到困惑。
我的困惑来自于我们正在使用的一个WCF服务,它似乎不是一个典型的WCF服务。当我通过在Visual Studio中添加新项目来创建WCF服务时(使用“WCF服务应用程序”模板),它会生成一个带有Service.svc的项目,并且项目图标是web服务图标。然而,对于我们拥有的另一个WCF服务(用于从Ajax到ASP.NET应用程序的调用),我们有一个项目,它看起来是一个普通的C#项目-它的图标是典型的C#项目图标,项目内容只由一个调用其他函数的Service.cs文件(而不是普通的.svc扩展名)组成。然而,这个WCF文件实现了ServiceContract/ServiceBehavior/OperationContract属性,所以这可能是一个手动创建的Service.cs服务?
在主项目Web.config中有一个指向Service.cs文件的标签,而使用WCF模板创建的‘真正的’WCF服务不包括这个标签。
希望我已经包含了足够的信息,以便有人告诉我所关注的项目是否实际上是WCF服务?
首先要感谢大家!
发布于 2015-07-24 07:06:18
WCF是Windows Communication foundation的缩写。WCF是Web Services+MSMQ+ .NET Remoting +COM +的组合。如果将WCF与Web服务进行比较,则web服务的局限性在于web服务仅支持HTTP协议。2)您不能将web服务托管在两种不同的协议上。3)web服务不提供安全性、并发控制等。
现在来看wcf..您可以使用wcf模板和其他类库项目创建wcf服务。如果您使用类库,那么您可以通过几种方式来托管它,如自托管、托管在IIS文件上,但如果您使用包含.svc文件.SVC模板,则只能在IIS...上托管项目/服务。
发布于 2015-07-24 07:22:23
WCF服务可以是自托管的,并且可以在不实际使用Visual Studio项目模板的情况下创建。您所需要做的只是一个正确的属性接口,一个实现该接口的类,以及在项目中实例化ServiceHost
的代码。大多数人会将服务配置放在app.config
文件中,但也有一些人喜欢在代码中配置服务。
WCF项目模板只包含一些内容,因此您可以轻松地在ISS或Windows Activation service (WAS)中托管该服务。
https://stackoverflow.com/questions/31595929
复制相似问题