最近需要用到WCF的服务,就简单的介绍一下吧,也是做个总结。
什么是WCF
Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。 整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。
它是.NET框架的一部分,由 .NET Framework3.0 开始引入,与Windows Presentation Foundation及Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库。在 .NET Framework2.0 以及前版本中,微软发展了 Web Service(SOAP with HTTP communication),.NET Remoting (TCP/HTTP/Pipeline communication) 以及基础的 Winsock 等通信支持。由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性,对于开发人员来说,不同的选择会有不同的程序设计模型,而且必须要重新学习,让开发人员在使用中有许多不便。同时,面向服务架构(Service-Oriented Architecture) 也开始盛行于软件工业中,因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就是 Windows Communication Foundation。
(以上内容来自百度百科)
WCF的创建
新建一个项目,选择【WCF服务应用程序】新建。 第一次打开的可能还需要下载。
系统默认生成两个文件:IService1 和Service1,其中IService是定义接口的,Service是用来实现接口的
可以看到接口文件IService1.cs里有几个特性分别是:[ServiceContract]、[OperationContract]、[DataContract]、[DataMember],大致的用途如下:
[ServiceContract]:指明该接口是一个WCF的服务契约,可以被外部的调用,不加则无法被外部调用。
[OperationContract]:指明该方法是一个WCF的方法契约,可以被外部的调用,不加则无法被外部调用。
[DataContract]:数据契约,指明该类是可供服务端和客户端相互传递自定义数据的类型,声明后该类型就可以被序列化在服务端和客户端之间传送。
[DataMember]:数据成员,声明后的属性可以参与到客户端和服务器端的类的属性的序列化,没有声明的不参与序列化。
在Service1.svc中已经实现了接口中的方法,将Service1.svc设置为启动项,后调试会如下所示,这是vs自带的服务测试的工具
WCF服务
打开【开启或关闭Windows功能】勾选【Internet Information Services】
运行win+R,输入【inetmgr】打开【IIS管理器】
然后新建网址
网站创建完成之后点击右侧的【浏览网站】
点击【Service1.svc】
复制此页的网址
回到程序之后【添加服务引用】
输入刚才复制的地址
欢迎扶正~
|